Lightweight BitTorrent client in Rust. Blazingly fast, incredibly robust and very impressive in general.
This repo contains reusable library crates and a CLI executable. For GUI version see mtorrent-gui.
- https://wiki.theory.org/BitTorrentSpecification
- https://www.bittorrent.org/beps/bep_0000.html
- https://codethechange.stanford.edu/guides/guide_kademlia.html
- Basic protocol
- Business logic
- HTTP tracker client
- Multitracker Metadata Extension
- UDP Tracker Protocol
- Extension Protocol
- PEX
- Magnet URIs
- IPv6 Tracker Extension
- DHT (Kademlia)
- Protocol Encryption
- uTP
- UPnP
- IPv6 DHT
- STUN (for DHT)?
- Fast Extension
- BitTorrent v2
Build on Linux using the provided dev container. Install Docker, then run ./cargo.sh [args] where args is the arguments to cargo (e.g. ./cargo.sh build --release).
Alternatively, use ./devshell.sh to execute arbitrary commands inside the dev container.
When using VS Code, open the root folder, then, when prompted, build and open the dev container (requires Dev Containers extension).