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)
- split swarm worker into two modules - split socket worker into two modules - keep track of which offers peers have sent and only allow matching answers - always clean up after closing connection - use channel for telling connections to close - move some logic into new ConnectionRunner struct - use slotmap for connection reference storage - fix double counting of error responses - actually close connections that take too long to send responses to - remove announced_info_hashes entry on AnnounceEvent::Stopped |
||
|---|---|---|
| .github | ||
| crates | ||
| docker | ||
| documents | ||
| scripts | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| deny.toml | ||
| LICENSE | ||
| README.md | ||
| TODO.md | ||
aquatic: high-performance open BitTorrent tracker
High-performance open BitTorrent tracker, consisting of sub-implementations for different protocols:
| Name | Protocol | OS requirements |
|---|---|---|
| aquatic_udp | BitTorrent over UDP | Unix-like |
| aquatic_http | BitTorrent over HTTP over TLS | Linux 5.8+ |
| aquatic_ws | WebTorrent, optionally over TLS | Linux 5.8+ |
Features at a glance:
- Multithreaded design for handling large amounts of traffic
- All data is stored in-memory (no database needed)
- IPv4 and IPv6 support
- Supports forbidding/allowing info hashes
- Prometheus metrics
- Automated CI testing of full file transfers
Known users:
- explodie.org public tracker (
udp://explodie.org:6969), typically serving ~100,000 requests per second
Performance of the UDP implementation
More benchmark details are available here.
Usage
Please refer to the README pages for the respective implementations listed in the table above.
Architectural overview
Copyright and license
Copyright (c) 2020-2023 Joakim Frostegård
Distributed under the terms of the Apache 2.0 license. Please refer to the
LICENSE file in the repository root directory for details.
Trivia
The tracker is called aquatic because it thrives under a torrent of bits ;-)
