A modern, self-hostable BitTorrent client written in Rust — a single small binary with a clean web UI, a full HTTP API, and qBittorrent-compatible endpoints for the tools you already run.
Beta software. rustTorrent is under active development. Expect bugs, breaking changes, and incomplete features. Report issues.
Website: rusttorrent.dev · Live demo: rusttorrent.dev/demo · Discord: discord.gg/pu6chSqpnJ
- Web UI — responsive React + TypeScript interface with a compact table view, detail panes, and dark mode. Works from any browser, desktop or mobile.
- HTTP API — everything the UI does is an API call: add torrents, query state, select files, stream content. Swagger documentation included.
- qBittorrent-compatible API — speaks the qBittorrent WebUI protocol, so Sonarr, Radarr, and other *arr applications connect without adapters.
- Full peer discovery — DHT, HTTP and UDP trackers, peer exchange, local service discovery, and UPnP port forwarding. Magnet links resolve metadata straight from the swarm.
- Streaming — play media files directly from incomplete torrents over HTTP.
- RSS automation — subscribe to feeds with filter rules and download new releases automatically.
- Docker ready — multi-stage build producing a minimal scratch-based image.
- Desktop app — native Tauri application for Windows, macOS, and Linux with system tray integration.
- Memory safe — written entirely in Rust; the bencode, DHT, and peer-protocol parsers are additionally fuzz-tested.
docker run -d --name rusttorrent \
-p 3030:3030 -p 4240:4240 \
-v ~/downloads:/downloads \
ghcr.io/ausagentsmith-org/rusttorrent:betaOr build from the repository:
git clone https://github.com/AusAgentSmith-org/rustTorrent.git
cd rustTorrent
docker compose up --build -dPorts: 3030 (web UI + API), 4240 (BitTorrent TCP + uTP).
Static binaries for Linux and Windows, with SHA256 checksums, are published at dl.rusttorrent.dev/latest:
curl -LO https://dl.rusttorrent.dev/latest/rtbit-linux-x86_64
chmod +x rtbit-linux-x86_64
./rtbit-linux-x86_64 server start ~/DownloadsThe web UI comes up at http://localhost:3030.
git clone https://github.com/AusAgentSmith-org/rustTorrent.git
cd rustTorrent
cargo build --release
./target/release/rtbit server start ~/DownloadsRequires a recent stable Rust (CI builds with 1.95) and Node.js/npm for the bundled web UI. See docs/TESTING.md for running the test suites.
Most behaviour is configurable from the web UI's settings dialog or via CLI flags
(rtbit --help). The first browser visit walks through authentication setup.
| Path | Contents |
|---|---|
crates/rtbit |
CLI binary and server entry point |
crates/librtbit |
Core session, torrent state machine, storage, HTTP API, web UI |
crates/librtbit-* |
Protocol building blocks: bencode, DHT, peer protocol, trackers, UPnP, LSD |
desktop/ |
Tauri desktop application |
website/ |
Static rusttorrent.dev website and deployment assets |
fuzz/ |
Fuzz targets for the protocol parsers |
docs/ |
Architecture notes, testing guide, fork provenance |
rustTorrent is a permanent hard fork of rqbit by Igor Katson, licensed under Apache 2.0. The original copyright and license notices are preserved; see docs/FORK_PROVENANCE.md for details of what was imported and when. We're grateful for Igor's work — rustTorrent builds on that foundation.
Apache 2.0 — see LICENSE.