sirodoht / herb

CLI BitTorrent client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

herb

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!

Run

You need a torrent file, like this one.

cargo run < debian-10.4.0-amd64-netinst.iso.torrent

Implementation progress

  • 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

License

MIT

About

CLI BitTorrent client

License:MIT License


Languages

Language:Rust 100.0%