Hey! This is my BitTorrent client built during the Codecrafters challenge.
- ✨ Parse
.torrent
files and extract metadata - 🤝 Connect to peers using the BitTorrent protocol
- 📡 Communicate with trackers to discover peers
- 📦 Download pieces from multiple peers simultaneously
- ✅ Verify downloaded pieces using SHA1 hashing
- 📊 Basic download progress tracking
This client implements core BitTorrent protocol features including:
- Bencode Parser: Custom implementation for encoding/decoding bencode format
- Peer Wire Protocol: Handles peer communication and piece exchange
- Tracker Communication: Manages tracker requests and peer discovery
- Piece Management: Downloads and verifies file pieces
- TCP Connections: Handles concurrent peer connections
- 🚄 Multi-threaded downloading for improved performance
- 📊 Real-time download progress visualization
- 🔄 Resume interrupted downloads
- 🎯 Selective file downloading from multi-file torrents
- 🔒 Support for encrypted peer connections
- 📱 Web UI for remote management
- 💾 Configurable download queue management
- 🌡️ Bandwidth throttling and scheduling
- 🔍 DHT (Distributed Hash Table) support for trackerless torrents
- The awesome folks at Codecrafters
- The BitTorrent Protocol Spec
- Kristen Widman's super helpful guide