A lightweight torrenting client built in Go with the main goal of gaining a deeper understanding of torrenting! Not recommended for 🌊🚢🏴☠️
- Git
- Golang
- Clone or download this repository
- Build the project by running
go build
- Run the project with
./vistorrent <input:file> <output:file>
- Navigate to
http://localhost:8080
and start the download by clicking the button
vistorrentdemo.mp4
Each red box represents a piece of a file, when that piece has been downloaded, it turns green! If a peer fails to download a piece, it is placed back onto the work queue (hence the appearance of "missed" red boxes in the demo)
- Support for magnet links (currently only supports
.torrent
files) - Support for other tracker types and/or a distributed hash table (currently only supports HTTP trackers)
- Support for multi-file torrents (currently only supports single-file torrents)
- Support for seeding (currently only supports leeching)
- Make visualization optional and use a desktop application instead of a web application