# rakshasa/rtorrent

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rakshasa-rtorrent).**

4,713 stars · 456 forks · C++ · gpl-2.0

## Links

- GitHub: https://github.com/rakshasa/rtorrent
- Homepage: https://github.com/rakshasa/rtorrent/wiki
- awesome-repositories: https://awesome-repositories.com/repository/rakshasa-rtorrent.md

## Topics

`bittorrent` `bittorrent-client` `rtorrent` `torrent` `torrent-client`

## Description

rTorrent is a headless BitTorrent client daemon and manager designed for Unix-like systems. It operates as a background process to handle the downloading and uploading of files via the BitTorrent protocol.

The application provides a text-based user interface using ncurses for real-time updates and keyboard navigation in a console. It also exposes a socket-based remote control interface, allowing external clients to send commands and query status via a network protocol.

The software covers core torrent management capabilities, including file priority configuration, torrent import, and list filtering. It includes tools for network traffic throttling to regulate bandwidth, peer connection monitoring, and data integrity verification through hash checks.

## Tags

### Networking & Communication

- [BitTorrent Clients](https://awesome-repositories.com/f/networking-communication/bittorrent-clients.md) — Provides a command-line client for downloading and sharing files via the BitTorrent protocol.
- [Bandwidth Management](https://awesome-repositories.com/f/networking-communication/bandwidth-management.md) — Includes tools to control upload and download speeds to prevent network saturation.
- [BitTorrent Protocol Cores](https://awesome-repositories.com/f/networking-communication/bittorrent-protocol-cores.md) — Integrates the libtorrent C++ library to handle core BitTorrent protocol logic and peer discovery.
- [Torrent Daemons](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/peer-to-peer-file-sharing/torrent-management-tools/torrent-daemons.md) — Runs as a background daemon on Linux and Unix-like systems to handle peer-to-peer file sharing.
- [Torrent Imports](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/peer-to-peer-file-sharing/torrent-management-tools/remote-torrenting-services/torrent-metadata-management/torrent-imports.md) — Allows users to import torrent files or web addresses to initiate downloads from remote sources. ([source](https://github.com/rakshasa/rtorrent/wiki/User-Guide))
- [Runtime Control Sockets](https://awesome-repositories.com/f/networking-communication/tcp-and-unix-socket-listeners/runtime-control-sockets.md) — Exposes a socket-based interface that allows external clients to send commands and query the daemon status at runtime.

### Development Tools & Productivity

- [Network Throttling](https://awesome-repositories.com/f/development-tools-productivity/execution-throttling/network-throttling.md) — Adjusts global upload and download speed limits to prevent network bandwidth saturation. ([source](https://github.com/rakshasa/rtorrent/wiki/User-Guide))
- [Remote File Transfers](https://awesome-repositories.com/f/development-tools-productivity/remote-file-transfers.md) — Manages large data transfers from remote sources with capabilities to pause, resume, and prioritize files.

### System Administration & Monitoring

- [Torrent Transfer Managers](https://awesome-repositories.com/f/system-administration-monitoring/activity-monitors/torrent-progress-monitors/torrent-transfer-managers.md) — Acts as a server-side manager for torrent transfers without requiring a native graphical user interface.

### Data & Databases

- [Data Integrity Verification](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/local-file-storage/data-integrity-verification.md) — Verifies the integrity of downloaded files through hash checks to ensure data is not corrupted.
- [Filesystem-Backed Stores](https://awesome-repositories.com/f/data-databases/file-storage-and-metadata-management/filesystem-backed-stores.md) — Persists torrent state and session metadata directly to the local filesystem to enable transfer resumption after restarts.

### Software Engineering & Architecture

- [Event-Driven Connection Multiplexing](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-connection-multiplexing.md) — Uses a single-threaded event loop to manage thousands of concurrent network connections and disk operations efficiently.
- [Asynchronous File I/O](https://awesome-repositories.com/f/software-engineering-architecture/non-blocking-io-architectures/asynchronous-file-i-o.md) — Implements non-blocking interfaces for reading and writing files to prevent network stalls during large transfers.
- [Download Priority Queues](https://awesome-repositories.com/f/software-engineering-architecture/priority-based-request-queues/download-priority-queues.md) — Implements a priority system to determine the download order of individual files within a torrent. ([source](https://github.com/rakshasa/rtorrent/wiki/User-Guide))

### User Interface & Experience

- [Ncurses-Based Rendering](https://awesome-repositories.com/f/user-interface-experience/ncurses-based-rendering.md) — Renders a real-time text-based user interface in the console using the ncurses library.
