Torrust-Actix
// lightweight bittorrent tracker

Torrust-Actix

A high-performance, feature-rich BitTorrent Tracker built with Rust & Actix-Web. Supports HTTP, UDP, clustering, and now RtcTorrent — BitTorrent directly in the browser.

// latest release  —  Loading…
Rust
Language
Actix-Web
Framework
MIT
License
BEP 3/7/15/23/41/48
Protocol Support

Built for Performance

Blazing Fast

Written in Rust with Actix-Web, Torrust-Actix delivers exceptional throughput and minimal latency, even under heavy peer loads.

🌐

Full IPv4 & IPv6

Complete dual-stack support across HTTP, HTTPS and UDP tracking protocols. Block arrays for TCP, UDP and API endpoints.

🗄️

Multi-Database

Persistence via SQLite3, MySQL or PostgreSQL with fully customizable table and column structure through config.

🔒

Access Control

Whitelist & blacklist systems, torrent key support with timeouts, user accounts, and IP-level block arrays for full control.

📊

Cluster Mode

Stand-Alone, Master or Slave cluster operation via WebSockets. Scale horizontally with binary, JSON or MessagePack encoding.

🧰

Redis & Memcache

Optional caching layer for peer data — reduce SQL load and power real-time website displays without burdening the database.

📖

Swagger UI Built-In

Integrated Swagger UI for API documentation and live testing. Toggleable in config, accessible at /swagger-ui/.

🛡️

Sentry Integration

Sentry SaaS and self-hosted error monitoring with configurable sample rates, stack traces, and PII controls.

📹

RtcTorrent NEW

Built-in WebRTC peer-to-peer library — BitTorrent directly in the browser with no plugins, no native binaries required.

☁️

Cloudflare Proxy

Cloudflare Simple Proxy Protocol for UDP, enabling use behind Cloudflare Spectrum for DDoS protection.

🐳

Docker Ready

Official Docker Hub image with a ready-made Docker Compose setup for instant local or production deployment.

🛠️

Easy Configuration

TOML-based config with sensible defaults and full environment variable override support. Get running in minutes.

Get Running Fast

Choose your preferred way to deploy Torrust-Actix

01

Install Rustup

Rustup is the official Rust toolchain installer. Install it if you don’t have Rust yet — select the stable toolchain when prompted.

bash
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
powershell
> winget install Rustlang.Rustup

Or download the installer directly from rustup.rs.

02

Clone the Repository

bash
$ git clone https://github.com/Power2All/torrust-actix.git
$ cd torrust-actix
03

Build with Cargo

Rust’s package manager handles all dependencies. A release build gives you maximum performance.

bash
$ cargo build --release

Binary will be at ./target/release/torrust-actix (or .exe on Windows).

04

Generate Config & Launch

Use the built-in flag to generate a fresh default config, edit it as needed, then start the tracker.

bash
$ ./target/release/torrust-actix --create-config
$ ./target/release/torrust-actix

Use --help to see all flags. Swagger UI is at /swagger-ui/ when enabled.

Prefer Docker?

A Docker Compose setup is in the docker/ folder. Build and start with two commands.

Download a pre-compiled binary for your platform — no build tools or Rust installation required.

// latest: Loading…
🔗 View all releases on GitHub →
Lnx

Linux / macOS — after downloading

bash
$ chmod +x torrust-actix-*
$ ./torrust-actix-* --create-config
$ ./torrust-actix-*
Win

Windows — after downloading

cmd
> torrust-actix-windows.exe --create-config
> torrust-actix-windows.exe

RtcTorrent

WebRTC BitTorrent directly in the browser — no plugins, no native binaries required

RtcTorrent is a built-in WebRTC peer-to-peer library that lets a browser (or Node.js process) act as a BitTorrent seeder or leecher entirely without plugins or native binaries. It uses the standard HTTP announce endpoint with additional query parameters for WebRTC signalling — a modern alternative and replacement for WebTorrent.

Download torrents entirely in-browser via WebRTC
Stream video into a <video> element
Seed files from the browser with one JS call
Node.js CLI seeder with YAML multi-torrent config
Supports BEP v1, v2 and hybrid torrent formats
Configurable ICE/STUN servers and peer limits

// signalling flow

Browser (leecher) —announce + rtctorrent=1—→ Tracker
                 ←— SDP offer from seeder —
Browser —answer + rtcanswerfor=<peer_id>—→ Tracker
Seeder  —poll (announce) —————————→ Tracker
        ←— SDP answer —
WebRTC Data Channel established ↔ Browser & Seeder

// enable in config.toml

toml
[[http_trackers]]
enabled = true
bind_address = "0.0.0.0:6969"
rtctorrent = true   # Enable WebRTC signalling endpoint

// quick start (browser)

html
<script src="/assets/rtctorrent.browser.js"></script>
<script>
  const client = new RtcTorrent({
    trackerUrl: 'http://your-tracker/announce'
  });
  client.download('magnet:?xt=urn:btih:INFOHASH&tr=...');
</script>
COMING SOON
📹

RtcTorrent.com

A dedicated website for the RtcTorrent project is in development — featuring full documentation, interactive demos, and integration guides.

www.rtctorrent.com ↗

// key API methods

  • create(files, opts) — Create torrent from files
  • download(torrentData) — Download via magnet/URL
  • seed(torrent, files) — Seed an existing torrent
  • streamVideo(hash, idx, el) — Stream into <video>
  • stop() — Stop all & close connections

Sites Using Torrust-Actix

GB
GBitt.info
Live Tracker — Running Torrust-Actix

A public BitTorrent tracker running Torrust-Actix in production, serving peers across many torrents reliably.

ℹ️
About newTrackonnewtrackon.com is a public uptime monitor that tracks the availability of all known public BitTorrent trackers. It does not run on Torrust-Actix as its tracker engine — it simply monitors publicly available trackers (including those powered by Torrust-Actix).

// running Torrust-Actix in production? let us know!

Get in Touch

Team & Contributors

P2A
Power2All
Founder & Lead Developer
@power2all
// contributors
MvD
Mick van Dijke Original Torrust-Tracker codebase (DutchBits)
@mickvandijke

Contact Us

Have questions, bug reports, or want to contribute? Reach out through any of these channels.

Email

Send us a message for support, partnerships, or general inquiries.

Discord

Join our Discord community for real-time help, discussions, and announcements.

Join Discord Server

GitHub Issues

Found a bug or have a feature request? Open an issue on GitHub.