Rust Torrent Client
Rust Torrent Client
BitTorrent client written in Rust.
A BitTorrent v1.0 client written in Rust as a high school thesis project. The goal was to implement the official protocol specification from scratch and handle the full lifecycle of peer-to-peer data exchange — from discovering peers to sharing completed pieces back.
The client parses and serializes .torrent file metadata into structured types, sends valid GET requests to active trackers, and processes their responses. It opens TCP sessions with returned peers, handles the BitTorrent wire protocol (handshake, choking, piece requests, and block transfers), assembles incoming blocks, and writes them to disk. Downloaded segments are served to interested peers in turn.
Progress persists across restarts — the client can shut down cleanly without losing work already done. Built to understand distributed file sharing at the protocol level: tracker communication, concurrent peer I/O, and the mechanics of a real BitTorrent implementation.
Built as Jivko's high school thesis project earning an excellent 6.00 grade.