Header-only C++17 Linux implementation of various bittorrent-related protocols. Mostly for educational purposes.
- correctness of implementation
- usability both as a standalone client and library
- clarity of code
- POSIX portability
- performance
- full portability
- bencoding parser
- metainfo parser
- TCP tracker protocol
- Tracker Returns Compact Peer Lists (BEP_23)
- UDP tracker protocol (BEP_15)
- IPv4
- IPv6
- main client
- DHT + magnet links support
- Python3 module
- libcurl (easy to replace, portable)
- boost::filesystem (easy to replace, will be replaced)
- neither (header-only, portable)
- Catch2 (header-only, only for tests)