{"id":24599881,"url":"https://github.com/utkarsh5026/current","last_synced_at":"2025-03-18T06:40:32.034Z","repository":{"id":271034053,"uuid":"839373899","full_name":"utkarsh5026/current","owner":"utkarsh5026","description":"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.","archived":false,"fork":false,"pushed_at":"2025-01-04T23:15:28.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T13:17:50.433Z","etag":null,"topics":["bittorrent","codecrafters","codecrafters-bittorrent","golang","tcp"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/utkarsh5026.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-07T13:33:24.000Z","updated_at":"2025-01-04T23:17:14.000Z","dependencies_parsed_at":"2025-01-05T01:45:22.682Z","dependency_job_id":null,"html_url":"https://github.com/utkarsh5026/current","commit_stats":null,"previous_names":["utkarsh5026/current"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarsh5026%2Fcurrent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarsh5026%2Fcurrent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarsh5026%2Fcurrent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utkarsh5026%2Fcurrent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utkarsh5026","download_url":"https://codeload.github.com/utkarsh5026/current/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244173494,"owners_count":20410295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bittorrent","codecrafters","codecrafters-bittorrent","golang","tcp"],"created_at":"2025-01-24T13:17:57.640Z","updated_at":"2025-03-18T06:40:32.006Z","avatar_url":"https://github.com/utkarsh5026.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌊 BitTorrent Client Implementation\n\nHey! This is my BitTorrent client built during the [Codecrafters](https://codecrafters.io/) challenge. \n\n\n[![progress-banner](https://backend.codecrafters.io/progress/bittorrent/9bfe2f08-b35d-49aa-86d3-32c54792e640)](https://app.codecrafters.io/users/codecrafters-bot?r=2qF)\n\n\n## 🚀 Features\n\n- ✨ Parse `.torrent` files and extract metadata\n- 🤝 Connect to peers using the BitTorrent protocol\n- 📡 Communicate with trackers to discover peers\n- 📦 Download pieces from multiple peers simultaneously\n- ✅ Verify downloaded pieces using SHA1 hashing\n- 📊 Basic download progress tracking\n\n\n## 🛠️ Technical Implementation\n\nThis client implements core BitTorrent protocol features including:\n\n- **Bencode Parser**: Custom implementation for encoding/decoding bencode format\n- **Peer Wire Protocol**: Handles peer communication and piece exchange\n- **Tracker Communication**: Manages tracker requests and peer discovery\n- **Piece Management**: Downloads and verifies file pieces\n- **TCP Connections**: Handles concurrent peer connections\n\n\n### Planned Features\n- 🚄 Multi-threaded downloading for improved performance\n- 📊 Real-time download progress visualization\n- 🔄 Resume interrupted downloads\n- 🎯 Selective file downloading from multi-file torrents\n- 🔒 Support for encrypted peer connections\n- 📱 Web UI for remote management\n- 💾 Configurable download queue management\n- 🌡️ Bandwidth throttling and scheduling\n- 🔍 DHT (Distributed Hash Table) support for trackerless torrents\n\n\n## 🙏 Big Thanks To\n\n- The awesome folks at [Codecrafters](https://codecrafters.io/)\n- The [BitTorrent Protocol Spec](https://www.bittorrent.org/beps/bep_0003.html)\n- [Kristen Widman's super helpful guide](https://blog.jse.li/posts/torrent/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarsh5026%2Fcurrent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futkarsh5026%2Fcurrent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futkarsh5026%2Fcurrent/lists"}