RBitt (pronounced "rabbit") is a modern, cross-platform BitTorrent client built with Tauri and React. The backend is implemented entirely in safe Rust using the OxideBT library.
- BitTorrent v1 (BEP 3)
- Magnet links (BEP 9)
- Extension protocol (BEP 10) with
ut_metadata - Fast Extension (BEP 6)
BitTorrent v2 (BEP 52) and hybrid v1/v2 torrents (BEP 47) are planned but not yet implemented.
- HTTP(S) trackers with announce and scrape
- UDP trackers (BEP 15)
- DHT (Kademlia, BEP 5)
- Local Service Discovery (LSD, BEP 14)
- Peer Exchange (PEX, BEP 11)
- UPnP and NAT-PMP port mapping
- IPv4 and IPv6 support
- Per-torrent and global bandwidth limits
- Sparse file allocation
- Full preallocation mode
- SHA-1 piece verification
- Multi-file torrent support
RBitt is built as a Rust workspace with the following crates:
| Crate | Description |
|---|---|
oxidebt-bencode |
Bencode encoding/decoding |
oxidebt-torrent |
Torrent metainfo parsing, info hash computation |
oxidebt-peer |
Peer wire protocol, piece management |
oxidebt-tracker |
HTTP and UDP tracker clients |
oxidebt-dht |
Kademlia DHT implementation |
oxidebt-disk |
Disk I/O with verification |
oxidebt-cache |
Block/piece caching layer |
oxidebt-net |
PEX, LSD, UPnP, bandwidth limiting |
oxidebt-constants |
Shared protocol constants and tuning parameters |
rbitt |
Tauri application integrating all components |
- Rust 1.95+
- Node.js 20.19+ or 22.12+ (required by Vite 8)
- Bun (this project uses
bun.lock) - Platform-specific Tauri dependencies (see Tauri Prerequisites)
# Install frontend dependencies
bun install
# Run in development mode
bun run tauri dev# Build for production
bun run tauri build- Launch RBitt
- Add a torrent via:
- File > Open Torrent File
- File > Open Magnet Link
- Drag and drop a .torrent file
- Select download location
- Monitor progress in the main window
Settings, the torrent session, and per-torrent metadata are stored in the platform-specific config directory and restored on startup:
- Linux:
~/.config/rbitt/ - macOS:
~/Library/Application Support/rbitt/ - Windows:
%APPDATA%\rbitt\
Contents: settings.json (engine configuration, categories, RSS, watch
folders), session.json (torrent list and state), and torrents/ (per-torrent
info dictionaries used to restore the session).
cd src-tauri
cargo test --workspace# Check for warnings
cargo clippy --workspace -- -D warnings
# Format code
cargo fmt --allMIT License - see LICENSE for details.
- Built with Tauri
- Protocol specifications from bittorrent.org