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.
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.
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.
Repo | Name | License | Stars | Contributors | Type | UDP | HTTP | WebTorrent | Language | OS | Demo |
---|---|---|---|---|---|---|---|---|---|---|---|
Torrust | AGPL-3.0 | 312 | 13 | Mixed | Yes | No | No | Rust | Linux,MacOs | visit | |
Torrust-Actix | MIT | 89 | 2 | Mixed | Yes | Yes | No | Rust | Linux,MacOs,Windows | visit | |
opentracker | beer ware | Open | Yes | No | No | C | ? | ||||
bittorrent-tracker | MIT | 1.7k | 56 | ? | Yes | Yes | Yes | Node.js | Cross-platform | ||
Chihaya | BSD 2-Clause | 1.4k | 29 | mixed | Yes | No | No | Go | ? | ||
Ttorrent | Apache-2.0 | 1.4k | 29 | Mixed | No | No | No | Java | ? | ||
aquatic | Apache-2.0 | 444 | 2 | Open | Yes | Yes | Yes | Rust | UDP: Unix-like; HTTP,WS: Linux | ||
privtracker | AGPL-3.0 | 289 | 3 | Private | No | No | No | Go | ? | ||
XBT | GPL-3.0? | 171 | 4 | Mixed | Yes | No | No | C++ | ? | ||
mika | MIT | 115 | 2 | ? | No | Yes | ? | Go | ? | ||
Radiance | ? | 73 | 4 | Private | Yes | No | No | C++ | ? | ||
Ocelot | Pending | 21 | 4 | Mixed | Yes | No | No | C++ | ? |
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.
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:
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.
For more detailed installation requirements, refer to the latest documentation for more details about installation and requirements.
Building the Rust app from source is simple using cargo.
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:
You can use docker or podman to run the containerized application:
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.
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.
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.
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.