simpletorrent is a simple torrent client written in C++. It supports downloading (no uploading) of torrent files, including multi-file torrents. This project was meant for me to learn more about the bittorrent protocol as well as experiment with modern C++ features and design. For detailed features of the implementation, refer to Technical Design.
Resources referenced while writing simpletorrent include:
simpletorrent requires a C++20 compiler and CMake >=3.16 to build, and is written to be used on a Linux platform.
simpletorrent has OpenSSL dependencies so install the libssl-dev
package:
sudo apt-get install libssl-dev
- Clone the repository
mkdir build_release
cd build_release
cmake -DCMAKE_BUILD_TYPE=Release ..
make
./simpletorrent <path to torrent file>
You may find some example torrents in example-torrents folder. It contains a debian ISO torrent, and a MARS dataset from https://academictorrents.com/.
Torrent client only seems to be performant on a high speed internet connection. To investigate how to make it work better on lower speed connections.