WebTorrent is a JavaScript library implementing BitTorrent client and seeding behavior for both Node.js and browsers. At runtime, a WebTorrent instance accepts torrent identifiers (magnet links, info hashes, .torrent files), parses them into metadata, discovers peers via DHT, HTTP/UDP trackers, LSD, and PEX, then negotiates connections over TCP/uTP in Node or WebRTC in the browser. The engine orchestrates a block-request pipeline, verifies piece hashes, writes chunks into pluggable chunk stores (fs, fsa, memory), and exposes files as streams, HTTP endpoints, or Service Worker responses. It also seeds existing files/buffers back to the swarm. This repo is not the standalone CLI; it is the core client library consumed by webtorrent-cli and desktop applications. Architecturally, the code follows a modular small-package style: central WebTorrent and Torrent classes coordinate discovery, peer management, and piece selection, while focused helpers handle transport factories, shared listener pools, piece-range selection, rarest-first availability, and HTTP/Service Worker streaming. It depends on the established BitTorrent ecosystem: bittorrent-dht, bittorrent-tracker, bittorrent-protocol, create-torrent, parse-torrent, torrent-discovery, ut_metadata, ut_pex, and optional native utp-native. Browser/runtime variation is handled through package.json browser/chromeapp aliases and webpack builds. The test suite exercises real network workflows over local DHT/tracker/LSD and direct IP connections, covering PE/MSE encryption, metadata exchange, web seeds, blocklists, seeding while downloading, throttling, and server streaming. Code quality is generally strong, though lib/torrent.js is large and contains legacy comments/TODOs, and there are stale tests referencing a removed swarm module. Overall, this is a high-craft, production-grade P2P streaming library with several genuinely reusable internal components.
Rats Search is a decentralized BitTorrent search engine implemented as a Qt6/C++ desktop application with a headless server mode. It crawls the BitTorrent DHT network to discover torrent metadata, indexes it using Manticore Search (a Sphinx-compatible full-text database), and provides a full-featured GUI for searching, downloading, and managing torrents. The application also includes a P2P replication layer for synchronizing databases between peers, a REST/WebSocket API for remote control, and support for torrent creation, seeding, and metadata export. The codebase is well-layered (domain, data, services, net, ui, rest) with clear separation of concerns, extensive unit and integration tests (15+ test files), and a professional CMake build system with CI for Windows, macOS, and Linux. A legacy Electron/Node.js version (v1.x) is preserved in the `legacy/` directory but is not actively developed. The project demonstrates high craftsmanship in its data layer (hash-based row IDs, safe SphinxQL query builders, resumable database dumps) and service architecture (cancel tokens, progress reporting, event-driven updates via Qt signals). However, the main window (`mainwindow.cpp`) exceeds 2400 lines, and the presence of the legacy codebase adds maintenance overhead.
This repository provides a robust, production-ready implementation of a BitTorrent tracker, including both client and server components. The client can announce to HTTP, UDP, and WebSocket trackers to discover peers in a swarm, while the server can track multiple swarms, respond to announce and scrape requests, and expose statistics via a web interface. The architecture is modular, with separate tracker protocol implementations (HTTP, UDP, WebSocket) inheriting from a common base class, and a server that manages swarms using an LRU cache for peer storage. The codebase is well-tested, uses modern ESM modules, and is actively maintained as part of the WebTorrent ecosystem. It is primarily a library for Node.js, but also supports browser usage via bundlers.
rtorrent is a mature, high-performance BitTorrent client for Unix-like systems, built with ncurses for a terminal UI and supporting a wide range of features: DHT, PEX, encryption, magnet links, granular bandwidth throttling, and extensive scripting. It provides a rich command system that can be used interactively, via configuration files (`rtorrent.rc`), or remotely through SCGI, XMLRPC, and JSONRPC interfaces. Lua scripting is also supported for advanced automation. The architecture is modular and event-driven: the core handles download management, peer/tracker communication, and session persistence; the display layer manages ncurses windows and layouts; the input system processes keyboard events; and the RPC layer dispatches commands to the appropriate handlers. The codebase is well-organized into directories (`core/`, `display/`, `input/`, `rpc/`, `session/`, `ui/`, `utils/`) and uses a custom object system for command arguments and RPC values. The build system is Autotools with optional dependencies (e.g., Lua, XMLRPC backends). Key entry points include `src/main.cc`, `src/control.cc`, and `src/setup.cc`. The project is actively maintained with a strong CI pipeline (static analysis, unit tests, commit linting) and enforces modern C++20 standards. The code is generally clean but contains some manual memory management and legacy idioms; however, the overall engineering quality is high, with several reusable utility components.
torlink is a terminal-based torrent client that combines a rich Text User Interface (TUI) with headless daemon modes for torrent search, download, seeding, and file serving. Built with TypeScript, Node.js, and React (via Ink for TUI rendering), it provides zero-configuration access to curated torrent sources across categories like games, movies, TV, and anime. The application features parallel source querying, result deduplication, automatic seeding with optional file deletion, and persistent state management for queues, history, and seeds. The architecture follows a modular design: the TUI layer (src/ui) handles interactive modes, daemon services (src/daemon) manage headless operations (serve, files, watch, seed, attach), core download logic (src/download) manages the torrent queue and engine integration, and source plugins (src/sources) fetch torrents via RSS, APIs, or web scraping. Key utilities include atomic file writes, resilient HTTP fetching, caching, and format helpers. The CLI entry point (scripts/cli-entry.cjs) handles Node version checks and WebRTC fallbacks before launching the appropriate mode. External dependencies include Ink for TUI rendering, webtorrent for torrent handling, node-datachannel for WebRTC fallbacks, and various HTTP clients. The project maintains active development with recent commits, comprehensive test coverage, and CI workflows. While dependency pinning indicates managed compatibility risks, the codebase demonstrates strong engineering practices through isolated utilities, reactive patterns for concurrent searches, and cross-platform path handling.
XIU2/TrackersListCollection is a curated, daily-updated collection of BitTorrent tracker URLs. It provides several pre-filtered lists (best, all, HTTP-only, no-HTTP) in both plain text and Aria2-compatible formats, served via CDN. The core of the repository is a GitHub Actions workflow (`update-trackers.yml`) that automatically fetches trackers from multiple public sources, normalizes and deduplicates them, applies a blacklist, validates DNS resolution, and performs TCP connectivity checks on HTTP/HTTPS trackers. The resulting lists are committed back to the repository and mirrored to Bitbucket. While the repo is essentially a static data repository with no application logic, the CI pipeline demonstrates a clean, modular ETL pattern using bash and standard Unix tools. The primary value is the curated tracker data itself, which is widely used in BitTorrent clients to improve download speeds.
Gopeed is a high-performance, cross-platform download manager written in Go with a Flutter frontend. It supports HTTP/HTTPS, BitTorrent, Magnet links, ed2k, and HLS streaming protocols. The backend provides a REST API, CLI, and an MCP server for AI agent integration. The frontend is a full-featured Flutter app for desktop (Windows, macOS, Linux), mobile (Android, iOS), and web. Key features include multi-connection downloads with slow-start and work-stealing, a JavaScript extension system (goja) with polyfills for fetch, XHR, Blob, and streams, archive extraction (zip, 7z, rar), webhook/script notifications, and browser impersonation via TLS fingerprinting. The architecture is modular: protocol-specific fetchers implement a common interface, the download engine manages task lifecycle and persistence (BoltDB), and the UI communicates via RPC or FFI. The codebase is well-tested with extensive integration tests and includes a legacy Flutter UI (ui/flutter_old) alongside the current one, indicating an ongoing migration from GetX to Riverpod.
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.
This repository provides a Docker container that runs the Transmission BitTorrent client exclusively through an OpenVPN tunnel, ensuring that all torrent traffic is routed through the VPN. The container is designed as a monolithic application with a shell-based orchestrator (`start.sh`) that initializes the VPN connection, configures Transmission, and optionally starts a Privoxy HTTP proxy. The system relies on external VPN provider configs (either bundled scripts for dynamic download or a community-maintained config repository) and enforces a kill-switch pattern: Transmission runs only when the VPN tunnel is active. The codebase is well-structured with clear separation of concerns (OpenVPN setup, Transmission management, health checks, and optional plugins). It demonstrates mature Docker container patterns, including user permission handling, persistent environment variable injection, and runtime configuration modification. While the architecture is not groundbreaking, it is robust and battle-tested (4.5k stars, 1.1k forks). Notable components include reusable Python scripts for environment variable persistence and JSON settings overlay, and a configurable OpenVPN config modifier.
A client-side single-page web application providing an interactive comparison tool for premium debrid services (AllDebrid, Real-Debrid, TorBox, Premiumize, etc.). It displays pricing, file host support (over 300 hosts), adult host support, usenet availability, and links to tools and community resources. The app is built with vanilla JavaScript (ES modules), Vite, and Workbox for offline support. Data is bundled as static JSON files directly imported at build time. The UI features searchable/filterable tables with lazy rendering, a side-by-side comparison module, dark mode, and responsive design. The codebase is well-structured, modular, and demonstrates good engineering practices including accessibility (ARIA labels, skip link, focus management), performance optimizations (content-visibility, skeleton loaders, debounced search), and a component lifecycle pattern for resource cleanup. It does not have tests or CI/CD pipelines.
tremc is a console-based client for the Transmission BitTorrent daemon that provides a curses interface for monitoring and controlling torrents. It connects to Transmission via its RPC protocol, offering features like torrent listing with sorting/filtering, detailed torrent views (files, peers, trackers), bandwidth control, and torrent management operations. The architecture follows a modular design with separate components for configuration handling, Transmission RPC communication, and the curses-based user interface. Key entry points include the main tremc executable and the ability to forward arguments to transmission-remote. The application maintains local caches of torrent state that are periodically updated from the daemon, with user interactions triggering RPC calls to control the daemon.
vlc-bittorrent is a VLC media player plugin that enables direct streaming of .torrent files and magnet links. It integrates libtorrent-rasterbar to handle the BitTorrent protocol, providing three VLC submodules: a stream_directory module to list torrent contents as a virtual directory, a stream_extractor module to stream individual files with on-demand piece downloading and priority-based piece selection, and an access module to resolve magnet URIs by downloading metadata from peers. The plugin manages a single libtorrent session shared across multiple torrents, handles asynchronous alerts via a dedicated thread, and supports interruptible I/O compatible with VLC's blocking read model. It includes a comprehensive test suite with TAP output and deterministic expected results.
This repository provides a comprehensive Docker Compose configuration for building a self-hosted NAS (Network Attached Storage) system. It orchestrates over 20 services including media management (Sonarr, Radarr, Lidarr, Bazarr, Prowlarr, qBittorrent, Jellyfin, Jellyseer), a WireGuard VPN (PIA), reverse proxy (Traefik with Let's Encrypt), a homepage dashboard (Homepage), automatic updates (Watchtower), and optional services like AdGuard Home, Home Assistant, Immich, Vaultwarden, Paperless, and more. The architecture is a multi-container Docker stack with a shared network, designed to run on any Docker-capable Linux box. The primary data flow involves downloading media via qBittorrent through a VPN, managing it with *arr applications, and serving it via Jellyfin. The repository includes automation scripts for initial configuration (update-config.sh) and port forwarding updates (pia-shared/portupdate-qbittorrent.sh). It is not a software application with custom code but rather a well-documented, opinionated deployment template. The codebase is primarily configuration files (docker-compose.yml, environment files, nginx configs) with a few bash and JavaScript scripts. The quality is good for its purpose: it is organized, documented, and widely used, but it lacks reusable software components that could be extracted into a new project with minimal modification.
This repository provides a curated, automatically updated collection of public BitTorrent trackers. It contains plain-text lists of tracker URLs categorized by protocol (UDP, HTTP, HTTPS, WebSocket, I2P, Yggdrasil), as well as subsets for the 'best' trackers and IP-address-based lists to avoid DNS resolution issues. The data is generated by an external bot that checks tracker availability, removes duplicates and blacklisted entries, and sorts by popularity and latency. There is no application code in the repository itself; it serves as a data resource consumed by BitTorrent clients and third-party tools. The project is heavily star-favored and actively maintained with daily updates.
Medusa is an automatic TV show management and download application (PVR) that monitors RSS feeds, torrent indexers, and Usenet providers to search for, download, and manage TV episodes. It provides a full web UI (Vue.js frontend with Tornado backend), a REST API v2, background schedulers for daily and backlog searches, subtitle downloading, metadata generation for media centers (Kodi, Plex, Emby), and a wide array of notification services (Discord, Slack, Pushbullet, email, etc.). The codebase is structured around a monolith architecture with a plugin-like provider system for search sources and an event-driven queue for background tasks. The application is deployed as a self-contained Python package with a Docker image, bundling many third-party libraries (tornado, requests, guessit, subliminal, oauthlib, etc.) in the `ext/` and `lib/` directories to avoid external runtime dependencies. Entry points include `start.py`, `medusa/__main__.py`, and the Docker init scripts. The primary data flow involves periodic scheduler execution that queries configured providers, parses results via the `NameParser`, updates the local SQLite database, triggers post-processing when downloads complete, and notifies configured services. Despite its feature-rich nature, the repository suffers from significant technical drift. It carries heavy Python 2/3 compatibility shims (six, future, libfuturize), a large volume of vendored libraries at uncertain versions, and uses legacy frontend build tools (Bower, Grunt). The provider and notifier systems show duplication and fragility, and there are over 497 open issues, suggesting ongoing maintenance challenges. However, the core scheduling, search, and processing logic is functional and has been refined over years of development.