A CLI Bittorrent Client written in Go
Note: This project is currently under development and issues should be expected
- Magnet link support (.torrent files are not currently planned)
- Scrapes torrent info, displaying # of seeders/leechers
- Fetches metadata from magnet links' embedded trackers
- Single file downloads
- Multi-file downloads
With BitTorrent remaining the single largest file-sharing protocol since its initial release in 2001, I thought it might be interesting to explore exactly how the protocol works. In order to implement thus far, I've utilized the (somewhat outdated) WikiTheory Documentation along with the BitTorrent-published BEPs (BitTorrent Enhancement Proposals). Most of what I have been able to implement thus far is leech-heavy, I don't anticipate writing a client meant to be left open for long periods of time, but mainly focused on downloading the contents of torrents pointed to by magnet links. Besides learning about the protocol itself, I thought it would be interresting to build upon what I learned for my EncryptedChat project and work with a network protocol that is actually utilized today.