spill / docs
Spill
a modern torrent client implemented in Rust.
Spill runs in the background on Linux and macOS for a single user, downloads
and seeds torrents, and is controlled from the command line (spill) or
an optional local web page.
Spill aims to be correct, interoperable with other clients, stable under long running use and small. It is in beta.
What it does
- Downloads and seeds BitTorrent v1 torrents from
.torrentfiles and magnet links. - Connects to peers over TCP and uTP (BEP 29).
- Finds peers through HTTP, HTTPS and UDP trackers, the DHT, peer exchange (PEX) and HTTP web seeds.
- Supports private torrents (BEP 27): DHT and PEX are switched off and tracker announces follow private-tracker expectations.
- Selects files and priorities per torrent, limits download and upload rates, and stops seeding at a ratio or time goal.
- Survives restarts and crashes: verified progress is checkpointed, and only files that changed on disk are rehashed.
- Keeps everything in one state directory with an SQLite catalog. One port (TCP and UDP, same number) is all that needs to be reachable. Automatically requests router mappings using NAT-PMP or UPnP IGD.
What it does not do (yet)
- BitTorrent v2 or hybrid torrents.
- Protocol encryption (MSE/PE) or local peer discovery.
- Multiple users, remote web access or authentication. The web interface only listens on loopback.
- Platforms other than Linux and macOS.
Where to go next
- Install Spill and run it as a service.
- Follow the Quickstart to add your first torrent.
- Look up any setting in Configuration and any command in Command line.
- Read Torrents and Networking to understand what Spill does with your files and your network.