BitTorrent Trackers Implemented in Rust

A curated overview of BitTorrent tracker implementations written in Rust. From actively maintained production-ready projects to educational experiments, this post maps the Rust tracker landscape so you can find the right tool for your needs.

Jose Celano - 25/02/2026
BitTorrent Trackers Implemented in Rust

Introduction

The Rust programming language has become an increasingly popular choice for building high-performance network infrastructure, and BitTorrent trackers are no exception. Rust's combination of memory safety, zero-cost abstractions, and fearless concurrency makes it an excellent fit for a service that must handle tens of thousands of concurrent connections efficiently.

This post maps the landscape of BitTorrent tracker implementations written in Rust. We cover both projects that are actively maintained and used in production today, and historical or experimental projects that are no longer under active development but remain valuable as learning resources or starting points. The scope is limited to tracker server software — client libraries, DHT nodes, indexers, and other BitTorrent tooling written in Rust are outside the scope of this post.

If you know of a Rust tracker project not listed here, please open an issue and we will add it.

Actively Maintained Projects

The following trackers are under active development and have seen commits within the last year or two. They are generally suitable for production use.

aquatic

aquatic is a high-performance open BitTorrent tracker that covers three transport protocols through separate sub-implementations:

  • aquatic_udp — BitTorrent over UDP (supports Linux and other Unix-like systems)
  • aquatic_http — BitTorrent over HTTP, optionally over TLS (requires Linux 5.8+)
  • aquatic_ws — WebTorrent, optionally over TLS (requires Linux 5.8+)

Features at a glance:

  • Multithreaded design for handling large amounts of traffic
  • All data stored in-memory (no database needed)
  • IPv4 and IPv6 support
  • Supports forbidding/allowing info hashes
  • Prometheus metrics
  • Automated CI testing of full file transfers

Implemented BEPs:

  • BEP 3: BitTorrent HTTP protocol (aquatic_http)
  • BEP 7: IPv6 support (aquatic_http)
  • BEP 15: UDP Tracker Protocol (aquatic_udp)
  • BEP 23: Compact HTTP responses (aquatic_http)
  • BEP 48: HTTP scrape support (aquatic_http)

aquatic is the most starred Rust tracker on GitHub and is used in production by explodie.org public tracker (typically serving ~100,000 requests per second) and tracker.webtorrent.dev.

The HTTP and WebTorrent implementations leverage io_uring for exceptional throughput on modern Linux kernels. The UDP load test results show aquatic_udp consistently reaching hundreds of thousands of requests per second in benchmarks.

Torrust Tracker

Torrust Tracker is the tracker developed and maintained by the Torrust project (the same team behind this website). It is a modern, feature-rich BitTorrent tracker built with the Axum web framework and aims to be respectful of both formal BEP standards and widely adopted de facto extensions.

Key features:

  • High-quality, well-documented Rust codebase
  • Comprehensive suite of unit and functional tests
  • Support for UDP, HTTP, and TLS sockets
  • Native IPv4 and IPv6 support
  • Private and whitelisted mode
  • Tracker management REST API
  • Support for newTrackon checks
  • Persistent SQLite3 or MySQL databases
  • Prometheus metrics and Grafana integration

Implemented BEPs:

  • BEP 3: The BitTorrent Protocol
  • BEP 7: IPv6 Support
  • BEP 15: UDP Tracker Protocol for BitTorrent
  • BEP 23: Tracker Returns Compact Peer Lists
  • BEP 27: Private Torrents
  • BEP 48: Tracker Protocol Extension: Scrape

The project is sponsored by Nautilus Cyberneering and welcomes community contributions. A live demo environment is available at torrust-demo.

Torrust-Actix

Torrust-Actix is a lightweight but feature-rich BitTorrent tracker built with the Actix web framework. It originated from Torrust Tracker code and was rebuilt from scratch by Power2All. More information is available on the Torrust-Actix website.

Highlights:

  • Full IPv4 and IPv6 support
  • Persistence via SQLite3, MySQL, or PostgreSQL
  • Whitelist and blacklist systems for private and public tracking
  • Torrent key support for access control
  • Built-in Swagger UI for API documentation and testing
  • Full stand-alone / master / slave cluster mode via WebSockets (introduced in v4.1.0)
  • Optional Redis/Memcached caching for peer data
  • Sentry.io integration (SaaS and self-hosted)
  • Cloudflare Simple Proxy Protocol support for UDP
  • Docker support with Docker Compose

Implemented BEPs:

  • BEP 3: The BitTorrent Protocol
  • BEP 7: IPv6 Support
  • BEP 15: UDP Tracker Protocol for BitTorrent
  • BEP 23: Tracker Returns Compact Peer Lists
  • BEP 41: UDP Tracker Protocol Extensions
  • BEP 48: Tracker Protocol Extension: Scrape

UNIT3D-Announce

UNIT3D-Announce is a high-performance backend BitTorrent tracker designed specifically to replace the default PHP announce handler of UNIT3D, a popular private tracker platform. It is built with the Axum framework and offers a dramatic performance improvement over the PHP baseline.

According to the project's own benchmarks, UNIT3D's PHP announce can handle ~250 HTTP requests per second per core. UNIT3D-Announce achieves ~50,000 HTTP requests per second per core (using wrk), or ~10,000 when placed behind an nginx proxy with TLS — a 200× improvement.

Key characteristics:

  • Drop-in HTTP tracker backend for UNIT3D v9.1.7+
  • All peer data stored in-memory
  • Hot configuration reload without restart
  • Global freeleech and double-upload event support
  • Unix socket and TCP socket support
  • Supervisor integration for background execution

This tracker is not a general-purpose standalone tracker — it requires a running UNIT3D installation and shares its user and torrent database via PostgreSQL.

Historical and Less Active Projects

The following projects are no longer actively maintained or have seen little to no commits in recent years. They are still valuable as references, learning resources, or starting points for new implementations.

UDPT

UDPT is a UDP-based torrent tracker that fully implements BEP 15. It is a complete rewrite in Rust of an older C/C++ project originally developed in 2012. While the project is no longer actively developed, it was an important early Rust tracker and contributed code to both Torrust Tracker and Torrust-Actix.

Features:

  • UDP torrent tracking server
  • In-memory database
  • Dynamic, static, and private tracker modes
  • Ability to block specific torrents
  • HTTP REST API for management
  • Logging
  • Windows Service and Linux/Unix daemon support

Tyto

Tyto is an open source BitTorrent tracker written in Rust with a focus on safety, performance, and reliability. It uses async/await throughout. Although abandoned before the full feature set was completed, it achieved ~23,000 HTTP requests per second on a 2017 MacBook Pro in load tests.

Implemented (per README checkboxes):

  • Global metrics
  • IPv4 and IPv6 support

Planned but not completed before abandonment:

  • Configuration hot-reloading
  • Private tracker support
  • Storage-agnostic backend
  • Swarm statistics

Rotten

Rotten is a small, experimental UDP BitTorrent tracker. According to the README it was still in active development and not production-ready at the time of the last commit. It implements UDP connect and announce but not scrape. Interesting mainly as a minimal learning exercise.

bittorrent-client-tracker

This repository contains both a BitTorrent client (dTorrent) and a tracker (dTracker) written in Rust. It was developed as a university project for the subject "Taller de Programación I" at FIUBA during the first semester of 2022. While not intended for production use, it is a useful reference for anyone learning how to build BitTorrent software from scratch in Rust.

Torshare Tracker

Torshare Tracker is a high-performance, multi-protocol BitTorrent tracker that supports both HTTP and UDP announcing. It implements Redis-backed high availability. The project never published a release and appears to have been abandoned before reaching production readiness.

Implemented BEPs:

  • BEP 3: The BitTorrent Protocol
  • BEP 7: IPv6 Tracker Extension
  • BEP 23: Tracker Returns Compact Peer Lists
  • BEP 31: Failure Retry Extension
  • BEP 41: UDP Tracker Protocol Extension
  • BEP 48: Tracker Protocol Extension: Scrape
The repository rt also appeared in searches as a Rust tracker but contains almost no public information — no stars, no license, no release, and a near-empty README. It is omitted from the comparison table.

Quick Comparison

The table below summarises key attributes of the trackers covered in this post.

ProjectProtocolsBEPsLicenseStarsStatus
aquaticHTTP, UDP, WebTorrent3, 7, 15, 23, 48Apache-2.0~591Active
Torrust TrackerHTTP, UDP, TLS3, 7, 15, 23, 27, 48AGPL-3.0~490Active
UDPTUDP15MIT~243Minimal
Torrust-ActixHTTP, UDP3, 7, 15, 23, 41, 48MIT~133Active
UNIT3D-AnnounceHTTP3AGPL-3.0~56Active
TytoHTTP3, 7 (partial)MIT~11Abandoned
RottenUDP15 (partial)MIT~4Abandoned
dTrackerHTTP3 (partial)MIT~4Academic
TorshareHTTP, UDP3, 7, 23, 31, 41, 48MIT~3Abandoned

Conclusion

The Rust ecosystem has produced a diverse set of BitTorrent tracker implementations, ranging from production-grade systems handling millions of requests per second to academic experiments designed to teach protocol fundamentals.

As of early 2026, four projects are actively maintained — aquatic, Torrust Tracker, Torrust-Actix, and UNIT3D-Announce. The historical projects, while no longer under active development, remain useful references for anyone studying how BitTorrent tracker logic has been approached in Rust over the years.