spill 0.5.2

Modern torrent client
Documentation

Spill

a modern torrent client implemented in Rust.

Spill runs as a single-user BitTorrent v1 daemon on Linux and macOS.

Read the user guide for installation, configuration, the command line, the web interface, networking, private trackers, limits and architecture. Documentation sources live in docs/.

Usage

spill serve [--config /absolute/path/spill.toml]
spill add example.torrent
spill add 'magnet:?xt=urn:btih:…'
spill list --watch
spill get ID
spill set ID upload_limit=1048576 seed_ratio=2
spill pause ID
spill resume ID
spill recheck ID
spill reannounce ID
spill remove ID [--delete-payload]
spill shutdown

See docs/cli.md and docs/configuration.md. Example config files, systemd units and a launchd agent are in deploy/.

Install and build

Prebuilt binaries for Linux x86_64/ARM64 and macOS Apple Silicon are on GitHub Releases. See installation instructions and compatibility.

Install from crates.io on Linux or macOS:

cargo install spill --locked

Or build from source:

cargo build --release --locked   # target/release/spill

Test

cargo fmt --all -- --check
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --locked

cargo test runs protocol codec tests and daemon end-to-end tests with in-process peers, trackers and web seeds; it needs no network. Interoperability runs against Transmission and scale baselines are opt-in; see tests/interop/README.md.

License

Apache-2.0. See LICENSE.