August 14, 2026
Rats on The Boat — BitTorrent Search Engine
A high-performance BitTorrent search program for desktop and server. It collects and indexes torrents from the DHT network, allowing…

By HackerBlogs
4 min read
A high-performance BitTorrent search program for desktop and server. It collects and indexes torrents from the DHT network, allowing powerful full-text search through torrent statistics and categories. Works over an encrypted P2P network and supports Windows, Linux, and macOS platforms.
Features
Core Search & Indexing
- Works over P2P torrent network, doesn't require any trackers
- DHT crawling and automatic torrent indexing
- Full-text search over torrent collection (powered by Manticore Search)
- Torrent and files search
- Search filters (size ranges, files, seeders, etc.)
- Collection filters (regex filters, adult filters)
- Tracker peers scan support
- Collects only statistical information and doesn't save any internal torrent data
P2P Network & Security
- Supports its own P2P protocol for additional data transfer (search between Rats clients, descriptions/votes transfer, etc.)
- End-to-end encryption with Noise Protocol (Curve25519 + ChaCha20-Poly1305)
- P2P Search protocol: Search in other Rats clients with encrypted communication
- BitTorrent Mainline DHT compatible (millions of nodes)
- mDNS Discovery for automatic local network peer discovery
- NAT Traversal with STUN/ICE support for connecting through firewalls
- GossipSub messaging for scalable publish-subscribe protocol
- Supports torrent rating (voting)
- Description association from trackers
- Top list (most common and popular torrents)
- Feed list (Rats clients activity feed)
Torrent Client
- Integrated torrent client for downloading
- Drag and drop torrents (expand local search database with specific torrents)
- Torrent generation and automatic adding to search database
User Experience
- Native C++/Qt application — fast, responsive, and lightweight
- Modern dark UI with customizable settings
- System tray support with minimize/close to tray
- Translations: English, Russian, Ukrainian, Chinese, Spanish, French, German, Japanese, Portuguese, Italian, Hindi
- Console mode for headless server operation
- REST & WebSocket API for custom clients and integrations
Screenshots
Architecture
Rats Search is built on librats — a high-performance P2P networking library providing:
FeatureDescriptionBitTorrent Mainline DHTCompatible with the largest distributed hash table network (millions of nodes)mDNS DiscoveryAutomatic local network peer discovery without internetNAT TraversalSTUN/ICE support for connecting through firewalls and NATNoise Protocol EncryptionEnd-to-end encryption with Curve25519 + ChaCha20-Poly1305GossipSub MessagingScalable publish-subscribe protocol for P2P communicationThread-safe DesignModern C++17 concurrency with minimal overhead
Download
⬇️ Download the latest release for Windows, Linux, or macOS.
PlatformPackageWindowsRatsSearch-Windows-x64.zipLinuxRatsSearch-Linux-x64.AppImage or .tar.gzmacOS IntelRatsSearch-macOS-Intel.zipmacOS ARMRatsSearch-macOS-ARM.zip
Building from Source
Requirements
- CMake 3.16+
- Qt 6.9+ (with WebSockets module)
- C++17 compatible compiler (MSVC, GCC, or Clang)
- Ninja (recommended) or Make
Build Instructions
Clone the repository with submodules:
git clone --recurse-submodules https://github.com/DEgITx/rats-search.git
cd rats-searchgit clone --recurse-submodules https://github.com/DEgITx/rats-search.git
cd rats-searchConfigure and build:
cmake -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Releasecmake -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release
cmake --build build --config ReleaseThe executable will be in build/bin/.
Build Options
OptionDefaultDescriptionRATS_SEARCH_BUILD_TESTSONBuild unit testsRATS_SEARCH_USE_SYSTEM_LIBRATSOFFUse system-installed librats
Running
GUI Mode (Default)
Simply run the executable:
./RatsSearch./RatsSearchCommand line options:
OptionDescription-p, --port <port>P2P listen port (overrides config setting)-d, --dht-port <port>DHT port (overrides config setting)--data-dir <path>Data directory for database and config-h, --helpDisplay help-v, --versionDisplay version
Console Mode (Headless/Server)
For servers without a display, use console mode:
./RatsSearch --console./RatsSearch --consoleConsole mode options:
OptionDescription-c, --consoleRun in console mode (no GUI)-p, --port <port>P2P listen port (overrides config setting)-d, --dht-port <port>DHT port (overrides config setting)--data-dir <path>Data directory for database and config-s, --spiderForce-enable the DHT spider even when indexer is off in the config-m, --max-peers <n>Maximum P2P connections (overrides config, range: 10-1000)
Console mode runs unattended: it starts every subsystem, logs to <data-dir>/rats-search.log, and exits on Ctrl+C. It reads no commands from stdin — to query or drive a running instance, enable the REST API ("restApi": true) and use the HTTP/WebSocket API.
Example:
# Start with the spider forced on
./RatsSearch --console --spider --data-dir /var/lib/rats-search
# Or start with custom ports
./RatsSearch -c -p 4445 -d 4446 -s# Start with the spider forced on
./RatsSearch --console --spider --data-dir /var/lib/rats-search
# Or start with custom ports
./RatsSearch -c -p 4445 -d 4446 -sConfiguration
After first launch, a configuration file rats.json will be created in the data directory:
{
"p2pPort": 4445,
"dhtPort": 4446,
"httpPort": 8095,
"restApi": true,
"indexer": true,
"darkMode": true
}{
"p2pPort": 4445,
"dhtPort": 4446,
"httpPort": 8095,
"restApi": true,
"indexer": true,
"darkMode": true
}SettingDescriptionp2pPortPort for P2P communication (TCP/UDP)dhtPortPort for DHT operations (UDP)httpPortPort for REST API server (WebSocket listens on httpPort + 1)restApiEnable/disable REST APIindexerEnable/disable DHT indexerupnpEnable/disable UPnP/NAT-PMP port mapping (config-file only)
API
Rats Search includes a built-in REST API server for integrations and custom clients.
Usage Manuals
Contributing
We welcome all contributions: bug fixes, improvements, code refactoring, and other enhancements.
Docker
Run Rats Search in a container (console mode, no GUI):
docker build -t rats-search .
docker run -d -p 8095:8095 -v rats-data:/data rats-searchdocker build -t rats-search .
docker run -d -p 8095:8095 -v rats-data:/data rats-searchThe default command starts the spider with 30 max P2P peers. Override as needed:
docker run -d \
-p 8095:8095 \
-v rats-data:/data \
rats-search \
/app/RatsSearch --console --spider --max-peers 100 --data-dir /datadocker run -d \
-p 8095:8095 \
-v rats-data:/data \
rats-search \
/app/RatsSearch --console --spider --max-peers 100 --data-dir /dataPort / VolumeDescription8095HTTP REST API (enable restApi in /data/rats.json)/dataPersistent storage for database, config, and logs
Legacy Version (1.x — Electron/Node.js)
The previous Electron-based version is preserved in the legacy/ folder for reference and for running the web server interface.
Running the Legacy Web Server
cd legacy
npm install --force
npm run buildweb
npm run servercd legacy
npm install --force
npm run buildweb
npm run serverAccess the web interface at: http://localhost:8095
Support & Donation
Bitcoin: bc1qsm5akf0gf2jnnxvjpf6nn3cd2p29yt3svxva3g
Subscribe to autor (GitHub donations): https://github.com/sponsors/DEgITx
Contacts
- Discord Community
- GitHub Issues
- Twitter/X: @RatsSearch
License
MIT License © 2026