A commandline tool for creating, inspecting and modifying bittorrent metafiles.
Features | Documentation | Binary releases | Building | License
- 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.
This project is under development. The commandline interface can change at any release prior to 1.0.0.
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.
Documentation is hosted on Github Pages.
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).
A .pkg installer is available as a release asset.
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
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
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
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
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
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
A source package for Arch linux is available on AUR.
git clone https://aur.archlinux.org/torrenttools.git
cd torrenttools
makepkg -is
Distributions that have no package yet can use the AppImage that is available for download as a release asset.
A docker image is available on dockerhub.
docker pull fbdtemme/torrenttools
This library depends on following projects:
- CLI11
- Catch2
- CTRE
- gsl-lite
- RE2
- expected-lite
- fmt
- nlohmann/json
- yaml-cpp
- bencode
- date
- OpenSSL
- Optional: ISA-L Crypto
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.
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
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 |
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
Installing the project:
sudo cmake --install . --component torrentttools
Distributed under the MIT license. See LICENSE
for more information.