RTorrent

rTorrent is a text-based BitTorrent client written in C++, based on the ncurses and libTorrent (not to be confused with libtorrent) libraries for Unix, whose author's goal is "a focus on high performance and good code".

Technical details
The library differentiates itself from other implementations by transferring data directly between file pages mapped to memory by the mmap function and the network stack. On high-bandwidth connections, it claims to be able to seed at three times the speed of the official client.

rTorrent packages are available for various Linux distributions and Unix-like systems, and it will compile and run on nearly every POSIX-compliant operating system, such as FreeBSD and macOS.

rTorrent uses the ncurses library and is suitable for use with GNU Screen or Tmux; it uses commands such as Carriage return to load a torrent, after which ^S can be used to start a torrent (where ^ is shorthand for Ctrl key), backspace can be used to automatically start a torrent once it is loaded, making a subsequent issue of ^S unnecessary, ^K for stop, and ^D for pause, or if already paused or stopped, ^D again to delete the torrent. It supports saving of sessions and allows the user to add and remove torrents. It also supports partial downloading of multi-file torrents. In the release of rTorrent-0.7.0 support for BitTorrent protocol encryption was also implemented. PEX, DHT and initial seeding were recently implemented in rTorrent.

rTorrent can be controlled via XML-RPC over SCGI.