Install rustup; the toolchain version is pinned by rust-toolchain.toml. For playback, install libmpv: sudo apt install libmpv-dev, sudo pacman -S mpv or brew install mpv. Browsing works without it; it is loaded on the first play.
Run every cargo command through scripts/cargo-env.sh, which pins the toolchain and points the build at libmpv:
git clone https://github.com/oddbench-co/jellybridge
cd jellybridge
scripts/cargo-env.sh run --release # run the app
scripts/cargo-env.sh test --locked # tests
scripts/cargo-env.sh clippy --all-targets --locked -- -D warnings # lint
Packages
The release packages are built in throwaway containers (podman or docker), so nothing is installed on your machine:
scripts/build-linux.sh # portable bundle with libmpv and codecs
scripts/package-linux.sh # .deb, .rpm, AppImage, tarball and Arch package
scripts/build-windows.sh # setup.exe and portable zip
scripts/package-macos.sh # on a Mac: .app and .dmg for its CPU
The first build-linux.sh compiles mpv, FFmpeg, dav1d, libass, libplacebo and libva from source (about 15 minutes, cached afterwards).