Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/utkarsh5026/current
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.
https://github.com/utkarsh5026/current
bittorrent codecrafters codecrafters-bittorrent golang tcp
Last synced: 10 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/utkarsh5026/current
- Owner: utkarsh5026
- Created: 2024-08-07T13:33:24.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2025-01-04T23:15:28.000Z (30 days ago)
- Last Synced: 2025-01-05T00:19:13.396Z (30 days ago)
- Topics: bittorrent, codecrafters, codecrafters-bittorrent, golang, tcp
- Language: Go
- Homepage:
- Size: 24.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌊 BitTorrent Client Implementation
Hey! This is my BitTorrent client built during the [Codecrafters](https://codecrafters.io/) challenge.
[![progress-banner](https://backend.codecrafters.io/progress/bittorrent/9bfe2f08-b35d-49aa-86d3-32c54792e640)](https://app.codecrafters.io/users/codecrafters-bot?r=2qF)
## 🚀 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
- The awesome folks at [Codecrafters](https://codecrafters.io/)
- The [BitTorrent Protocol Spec](https://www.bittorrent.org/beps/bep_0003.html)
- [Kristen Widman's super helpful guide](https://blog.jse.li/posts/torrent/)