CLI BitTorrent client in Rust.
Jesse Li wrote this outstanding blog post on how to create a bittorrent client in Golang. This project follows his work but in Rust instead of Go. Praise Jesse Li!
You need a torrent file, like this one.
cargo run < debian-10.4.0-amd64-netinst.iso.torrent
- read torrent files
- connect to tracker
- communicate bencoded messages with tracker
- concurrent TCP connections with peers
- handshake peers
- bitfields
- messages
- mpmc message passing between peer connection processes
- saving to disk
- seeding
- non-HTTP trackers
- multi-file torrents
- magnet links
- distributed peer discovery
MIT