Skip to content

A BitTorrent client implementation created as part of the codecrafters challenge series. This project demonstrates a working BitTorrent client that can download files using the BitTorrent protocol.

Notifications You must be signed in to change notification settings

utkarsh5026/current

Repository files navigation

🌊 BitTorrent Client Implementation

Hey! This is my BitTorrent client built during the Codecrafters challenge.

progress-banner

πŸš€ Features

  • ✨ 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

πŸ› οΈ Technical Implementation

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

Planned Features

  • πŸš„ 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

πŸ™ Big Thanks To

About

A BitTorrent client implementation created as part of the codecrafters challenge series. This project demonstrates a working BitTorrent client that can download files using the BitTorrent protocol.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published