Skip to content

4rtemTrickster/NeoTorrentClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeoTorrentClient

Purpose:

Lightweight and fast torrent client with a modern interface written in C++

Basis:

Basic information about the torrent client can be found in these posts:

Information about bittorrent protocol you can find in unofficial documentation or official.

Requirements

Dependencies:

Building:

  1. Clone the repository with all submodules (and submodules of submodules) using the method you choose.
  2. Install non submodule dependencies(cpr, boost).
  3. Once you've cloned and init all submodules, run scripts/Setup.bat to generate Visual Studio 2022 solution/project files.
  4. Now the project is ready to work with.

You can download and install cpr and boost using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install cpr
./vcpkg install boost

Supported Features:

The current implementation of this Torrent client only supports the following features:

  • Parsing .torrent file
  • Retrieving a list of peers from the tracker.

To make it an actual usable Torrent client, it will have to include:

  • Downloading single-file torrents in a multi-threaded manner(Work in progress at Dev branch).
  • Seeding
  • Resuming a download.
  • Downloading multi-file torrents
  • Downloading multiple torrents at once
  • All UI stuff, now only file selection are implemented

Some interesting remarks:

Initially, I planned to implement UI via IPC with an application written in python using PyQt.Then I couldn't imagine how stupid it was :), but if you would be interested to see such a monster, welcome to the old repository of this project.