mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 09:45:31 +00:00
High-performance open BitTorrent tracker (UDP, HTTP, WebTorrent)
| aquatic | ||
| aquatic_bench | ||
| aquatic_load_test | ||
| bittorrent_udp | ||
| cli_helpers | ||
| documents | ||
| scripts | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| deny.toml | ||
| README.md | ||
| TODO.md | ||
aquatic
Fast, multi-threaded UDP BitTorrent tracker written in Rust.
Aims to implements the UDP BitTorrent protocol, except that it:
- Doesn't care about IP addresses sent in announce requests. The packet source IP is always used.
- Doesn't track of the number of torrent downloads (0 is always sent).
Supports IPv4 and IPv6.
Usage
Install rust compiler (stable is fine) and cmake. Then, compile and run aquatic:
./scripts/run-server.sh
Benchmarks
Performance was compared to opentracker using aquatic_load_test.
Server responses per second, best result in bold:
| workers | aquatic | opentracker |
|---|---|---|
| 1 | n/a | 177k |
| 2 | 168k | 98k |
| 3 | 187k | 118k |
| 4 | 216k | 127k |
| 6 | 309k | 109k |
| 8 | 408k | 96k |
(See documents/aquatic-load-test-2020-04-19.pdf for details.)
Trivia
The tracker is called aquatic because it thrives under a torrent of bits ;-)