mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
High-performance open BitTorrent tracker (UDP, HTTP, WebTorrent)
Updating ahash v0.8.7 -> v0.8.11
Updating aho-corasick v1.1.2 -> v1.1.3
Updating arc-swap v1.7.0 -> v1.7.1
Updating autocfg v1.1.0 -> v1.2.0
Updating backtrace v0.3.69 -> v0.3.71
Updating bitflags v2.4.2 -> v2.5.0
Updating bytes v1.5.0 -> v1.6.0
Updating clap v4.5.3 -> v4.5.4
Updating clap_derive v4.5.3 -> v4.5.4
Updating fastrand v2.0.1 -> v2.0.2
Updating indexmap v2.2.5 -> v2.2.6
Updating indoc v2.0.4 -> v2.0.5
Updating itoa v1.0.10 -> v1.0.11
Updating memchr v2.7.1 -> v2.7.2
Updating memoffset v0.9.0 -> v0.9.1
Updating metrics v0.22.1 -> v0.22.3
Updating metrics-util v0.16.2 -> v0.16.3
Updating pin-project-lite v0.2.13 -> v0.2.14
Updating rayon v1.9.0 -> v1.10.0
Updating regex v1.10.3 -> v1.10.4
Updating regex-syntax v0.8.2 -> v0.8.3
Updating rustix v0.38.31 -> v0.38.32
Updating rustls v0.22.2 -> v0.22.3
Updating rustls-pki-types v1.3.1 -> v1.4.1
Updating serde_json v1.0.114 -> v1.0.115
Updating simd-json v0.13.8 -> v0.13.9
Updating smallvec v1.13.1 -> v1.13.2
Updating syn v2.0.52 -> v2.0.57
Updating tokio v1.36.0 -> v1.37.0
Updating toml v0.8.11 -> v0.8.12
Updating toml_edit v0.22.7 -> v0.22.9
|
||
|---|---|---|
| .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, optionally over TLS | Linux 5.8 or later |
| aquatic_ws | WebTorrent, optionally over TLS | Linux 5.8 or later |
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 - tracker.webtorrent.dev (
wss://tracker.webtorrent.dev)
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.
Support software
There are also some auxiliary applications and libraries.
Protocol-specific
| Protocol | Tracker load testing | Client ⇄ tracker communication |
|---|---|---|
| UDP | aquatic_udp_load_test | aquatic_udp_protocol |
| HTTP | aquatic_http_load_test | aquatic_http_protocol |
| WebTorrent | aquatic_ws_load_test | aquatic_ws_protocol |
General
- aquatic_bencher - automated tracker benchmarking
- aquatic_peer_id - extract BitTorrent client information from peer identifiers
Copyright and license
Copyright (c) Joakim Frostegård
Distributed under the terms of the Apache License, Version 2.0. 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 ;-)
