Documentation

Building from source

You need rustup and, to play media, libmpv from your system's mpv package.

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).