Rust / Apache-2.0 / In development
A modern torrent client.
Built for performance.
CLI, headless daemon, or Rust library. One async engine.
Install
Rust library
cargo add spillCLI
cargo install spill --lockedPlanned commands. Packages not published yet. Requires the Rust toolchain.
Architecture
Implementation notes ↗Single-owner state
One Tokio coordinator per torrent owns peers, piece picking, discovery, and status.
Adaptive pipelining
Per-peer request windows follow transfer rate, capped at 500 requests and the peer’s advertised limit.
Storage backpressure
A bounded writer queue pauses socket reads when full. Blocks go to storage as they arrive.
Parallel verification
Read pieces back and SHA-1 check before sharing. Up to two blocking hash jobs run alongside writes.
Pluggable storage
The Storage trait owns I/O, finalization, and resume data. Paths and durability policy stay in the backend.
Fingerprint-based resume
Reuse verified pieces when storage fingerprints match. Recheck changed pieces before networking.