PikaTorrent is a cross-platform BitTorrent client built with Flutter, supporting Windows, macOS, Linux, Android, and iOS. It provides a modern, user-friendly interface for downloading and streaming torrents, with features like sequential downloading, media playback with subtitle/audio track selection, torrent tagging and filtering, and platform-specific integrations (system tray, background service, file association). The application follows a clean architecture with an engine abstraction layer (currently backed by the Transmission library via flutter_libtransmission), provider-based state management (AppModel, SessionModel, TorrentsModel), and separate HTTP servers for streaming content and subtitles. The codebase is generally well-organized, though it contains some hardcoded values and minor code smells. The project is actively maintained with a full CI/CD pipeline and multi-platform release automation.
rTorrent is a high-performance BitTorrent client designed for headless (daemon) or ncurses-based terminal use. Its architecture is a monolithic event-driven application with clearly separated subsystems: core download management (libtorrent binding), display abstraction (ncurses windows and stubs), input handling, an extensive RPC layer supporting XMLRPC, JSONRPC, and SCGI, session persistence with async write-back, and a Lua scripting engine. The system exposes hundreds of commands for controlling torrents, trackers, peers, throttles, and DHT. Remote administration is a first-class feature, and the terminal UI is fully customizable via configuration. The codebase is mature and professionally structured, with strong test coverage and well-defined modular boundaries, though it carries some legacy dependencies (autotools, vendored TinyXML2, CppUnit) and deprecated command aliases.