torrenttools

Commandline tool for inspecting, creating and editing BitTorrent metafiles.

70
6
C++

build
Copr build status
GitHub release (latest SemVer)
C++ standard
Codacy Badge
License: MIT

A commandline tool for creating, inspecting and modifying bittorrent metafiles.

Features |
Documentation |
Binary releases |
Building |
License

Features

  • Creating bittorrent metafiles.
  • Inspecting bittorrent metafiles.
  • Verifying bittorrent metafiles against local data.
  • Editing existing bittorrent metafiles.
  • Support for the new v2 and hybrid protocols .
  • Support for tracker abbreviations.
  • Support for announce substitution parameters.
  • Fast multi-buffer hashing with Intel ISA-L.

Example

Status

This project is under development.
The commandline interface can change at any release prior to 1.0.0.

Performance

Following test were performed on a in in-memory filesystem with 1 MiB piece size
and as target a file filed with random data totalling 15.0 GiB:
The tested CPU is an Intel i7-7700HQ in a Dell XPS 15-9560 machine.

Benchmark

Documentation

Documentation is hosted on Github Pages.

Binary releases

Contents

Windows

An .msi installer is available as a release asset.

IMPORTANT: Please use a modern terminal that supports most ANSI escape codes, like Windows Terminal (not cmd or PowerShell).

macOS

A .pkg installer is available as a release asset.

Linux

Fedora

Binary and source packages for Fedora 32, Fedora 33, Fedora 34 and Fedora Rawhide and CentOS
stream are available in a COPR repo.

sudo dnf copr enable fbdtemme/torrenttools
sudo dnf install torrenttools

CentOS/RHEL

Binary and source packages for CentOS8/RHEL8 and CentOS stream are available
in a COPR repo.

sudo dnf copr enable fbdtemme/torrenttools
sudo dnf install torrenttools

Ubuntu

Binary and source packages for Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04 are available
as a PPA via launchpad.

sudo add-apt-repository ppa:fbdtemme/torrenttools
sudo apt-get update
sudo apt install torrenttools

Debian

A binary package is available for Debian Sid.
Older debian distributions should use the AppImage.

echo 'deb http://download.opensuse.org/repositories/home:/fbdtemme/Debian_Unstable/ /' | sudo tee /etc/apt/sources.list.d/home:fbdtemme.list
curl -fsSL https://download.opensuse.org/repositories/home:fbdtemme/Debian_Unstable/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_fbdtemme.gpg > /dev/null
sudo apt update
sudo apt install torrenttools

openSUSE

For openSUSE Tumbleweed run the following as root:

zypper addrepo https://download.opensuse.org/repositories/home:fbdtemme/openSUSE_Tumbleweed/home:fbdtemme.repo
zypper refresh
zypper install torrenttools

For openSUSE Leap 15.2 run the following as root:

zypper addrepo https://download.opensuse.org/repositories/home:fbdtemme/openSUSE_Leap_15.2/home:fbdtemme.repo
zypper refresh
zypper install torrenttools

For openSUSE Leap 15.3 run the following as root:

zypper addrepo https://download.opensuse.org/repositories/home:fbdtemme/openSUSE_Leap_15.3/home:fbdtemme.repo
zypper refresh
zypper install torrenttools

SUSE Linux Enterprise Server 15

For SLE 15 SP2 run the following as root:

zypper addrepo https://download.opensuse.org/repositories/home:fbdtemme/SLE_15_SP2/home:fbdtemme.repo
zypper refresh
zypper install torrenttools

For SLE 15 SP3 run the following as root:

zypper addrepo https://download.opensuse.org/repositories/home:fbdtemme/SLE_15_SP3/home:fbdtemme.repo
zypper refresh
zypper install torrenttools

Arch

A source package for Arch linux is available on AUR.

git clone https://aur.archlinux.org/torrenttools.git
cd torrenttools
makepkg -is

AppImage

Distributions that have no package yet can use the AppImage that is available for download as a release asset.

Docker

A docker image is available on dockerhub.

docker pull fbdtemme/torrenttools

Building

This library depends on following projects:

Almost all dependencies can be fetched from github during configure time or can be installed manually.
OpenSSL has to be installed on the system in advance.

Installing build dependencies

Ubuntu

sudo apt install build-essential git cmake g++-10 libssl-dev 

Debian

sudo apt install build-essential git cmake g++-10 libssl-dev libtbb-dev

Fedora/RHEL/CentOS

sudo dnf install cmake make g++ git openssl-devel automake autoconf

Configuration

Option Type Description
TORRENTTOOLS_BUILD_TESTS Bool Build tests.
TORRENTTOOLS_BUILD_DOCS Bool Build documentation.
TORRENTTOOLS_INSTALL Bool Generate an install target.
DOTTORRENT_MB_CRYPTO_LIB String Pass “isal” for fast multibuffer hashing

Building

This project requires C++20.
Currently only GCC 10 or later is supported.

This project can be build as every other project which makes use of the CMake build system.

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --target torrenttools

Installation

Installing the project:

sudo cmake --install . --component torrentttools

License

Distributed under the MIT license. See LICENSE for more information.