Skip to content

TheDancingDeveloper-org/rustTorrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

149 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rustTorrent

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

Features

  • 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.

Quick start

Docker

docker run -d --name rusttorrent \
  -p 3030:3030 -p 4240:4240 \
  -v ~/downloads:/downloads \
  ghcr.io/ausagentsmith-org/rusttorrent:beta

Or build from the repository:

git clone https://github.com/AusAgentSmith-org/rustTorrent.git
cd rustTorrent
docker compose up --build -d

Ports: 3030 (web UI + API), 4240 (BitTorrent TCP + uTP).

Prebuilt binaries

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 ~/Downloads

The web UI comes up at http://localhost:3030.

From source

git clone https://github.com/AusAgentSmith-org/rustTorrent.git
cd rustTorrent
cargo build --release
./target/release/rtbit server start ~/Downloads

Requires 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.

Configuration

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.

Repository layout

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

Attribution

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.

License

Apache 2.0 — see LICENSE.

About

A modern BitTorrent client written in Rust — fast, lightweight, self-hosted

Topics

Resources

License

Stars

8 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors