tracker

Key Features

The Torrust Tracker is built to handle high loads while ensuring reliable and accurate tracking of peers and torrents. It also offers flexible configurations to support different use cases, from private trackers to large public ones. You can benefit from the performance and safety features of Rust, which powers both the REST API and the HTTP tracker.

High quality and modern Rust codebase

Good performance in busy conditions

Support for UDP, HTTP, and TLS sockets

Native IPv4 and IPv6 support

Private & whitelisted mode

Tracker management API

Native IPv4 and IPv6 support

Persistent SQLite3 or MySQL databases (optional)

Stack

Torrust Tracker optionally uses persistence with SQLite3 or Mysql database, and is built with Rust using the Axum framework for its REST API and HTTP tracker. This combination allows for high-performance and secure operations, giving developers flexibility in deployment options.

Comparison to other products

Unlike other trackers, Torrust Tracker balances speed with feature richness. While some trackers prioritize minimalism at the cost of flexibility, Torrust focuses on offering extensive functionality with only a small compromise in speed.

If you want to include your Tracker on the following tables or update data for any of them, please open a PR.

General information

Repo Name License Stars Contributors Type UDP HTTP WebTorrent Language OS Demo
TorrustAGPL-3.031213MixedYesNoNoRustLinux,MacOs visit
Torrust-ActixMIT892MixedYesYesNoRustLinux,MacOs,Windows visit
opentrackerbeer ware Open YesNoNoC?
bittorrent-trackerMIT1.7k56?YesYesYesNode.jsCross-platform
ChihayaBSD 2-Clause1.4k29mixedYesNoNoGo?
TtorrentApache-2.01.4k29MixedNoNoNoJava?
aquaticApache-2.04442OpenYesYesYesRustUDP: Unix-like; HTTP,WS: Linux
privtrackerAGPL-3.02893PrivateNoNoNoGo?
XBTGPL-3.0?1714MixedYesNoNoC++?
mikaMIT1152?NoYes?Go ?
Radiance?734PrivateYesNoNo C++?
OcelotPending214Mixed YesNoNoC++?

Features

Repo Name Scrape API Stats Whitelist Integrations High Availability TLS IPv6 Databases Docker K8S
TorrustYesYesYesYesNoNoYesYesOptional: Sqlite,MysQLYesNo
Torrust-ActixYesYesYesYesNoNoYesYesOptional: Sqlite3,MysQL,PostgresSQLYesNo
opentrackerYes ?YesYes??No Yes???
bittorrent-trackerYes?Yes????YesNo??
Chihaya??Yes?PrometheusRedisYesYes?YesHelm
Ttorrent??????NoNo???
aquaticYesNoNoNo??YesYesNoYes?
privtracker??????YesYes???
XBTYes?????NoYes???
mika?Yes?????YesOptional: PostgreSQL, MySQL??
Radiance??????NoYes???
Ocelot??????NoNo???

Performance

It's important to outline the compromises made during the Torrust Tracker's development. Our aim was to create a tracker that is not only quick and reliable but also feature-rich and maintainable. Often, these two sets of goals conflict with each other. We acknowledge that achieving the highest speed comes with certain limitations.

Generally, our approach has been:

Accepting a minor reduction in speed for significant gains highlights our dedication to offering a tracker that excels in features and user-friendliness, not just in speed.

We are using the aquatic bencher tool for benchmarking.

You can also read our blog article about benchmarking for the tracker.

Installation

We have made the installation of the Tracker as easy and flexible as possible, offering multiple ways to set ip up. You can either compile from sources or use pre-built container images. For cloud deployments, we provide simple solutions to deploy the tracker across various hosting providers, wether you're using virtual machines or containers. Additionally, we've deployed a public tracker on cloud service (Digital Ocean) to gather feedback and ensure the application is production-ready. Out goal is to help system administrators by offering:

  • Simple backup of the database and app configurations.
  • Easy access to logs to monitor for errors.
  • Quick access to running services.
  • Automatic health checks to monitor services.

The application also allows configuration through TOML files or environment variables. We’ve focused on providing clear and actionable error messages to help admins quickly resolve any issues.

Software requirements

  • Rust Stable 1.68 if you're compiling from source.
  • SQLite 3 or MySQL 8.0. (only if persistence is enabled) .
  • Some system dependencies. In Linux: pkg-config, make, libssl-dev, libsqlite3-dev.

For more detailed installation requirements, refer to the latest documentation for more details about installation and requirements.

Build from sources

Building the Rust app from source is simple using cargo.

terminal
git clone https://github.com/torrust/torrust-tracker.git \
  && cd torrust-tracker \
  && cargo build --release \
  && mkdir -p ./storage/tracker/lib/database \
  && mkdir -p ./storage/tracker/lib/tls

Once built, you can run it with:

terminal
./target/release/torrust-tracker

Run with docker

You can use docker or podman to run the containerized application:

terminal
cd /tmp \
  && mkdir torrust-tracker \
  && cd torrust-tracker \
  && export USER_ID=1000 \
  && docker run -it \
    --env USER_ID="$USER_ID" \
    --publish 3001:3001/tcp \
    --volume "$(pwd)/storage/tracker/lib":"/var/lib/torrust/tracker" \
    --volume "$(pwd)/storage/tracker/log":"/var/log/torrust/tracker" \
    --volume "$(pwd)/storage/tracker/etc":"/etc/torrust/tracker" \
    torrust/tracker:develop

Please refer to the official documentation to learn more about running the index with docker.

Roadmap

The vision of Torrust is to provide a robust set of tools for the BitTorrent ecosystem. We recognize that this is a long-term effort, and we’ve planned ahead. Here’s a summary of what we’re working on:

You can participate in defining the future of Torrust. Join our public discussions on GitHub.

License

We aim to make this software as accessible and widely used as possible.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see www.gnu.org/licenses. Some files include explicit copyright notices and/or license notices.

Legacy Exception

For prosperity, versions of Torrust Tracker that are older than five years are automatically granted the MIT-0 license in addition to the existing AGPL-3.0-only license.