Updating allocator-api2 v0.2.16 -> v0.2.18
Updating anstream v0.6.13 -> v0.6.14
Updating anstyle v1.0.6 -> v1.0.7
Updating anstyle-parse v0.2.3 -> v0.2.4
Updating anstyle-query v1.0.2 -> v1.0.3
Updating anstyle-wincon v3.0.2 -> v3.0.3
Updating anyhow v1.0.81 -> v1.0.82
Updating autocfg v1.2.0 -> v1.3.0
Updating aws-lc-rs v1.7.0 -> v1.7.1
Updating aws-lc-sys v0.15.0 -> v0.16.0
Updating base64 v0.22.0 -> v0.22.1
Updating cc v1.0.92 -> v1.0.96
Updating colorchoice v1.0.0 -> v1.0.1
Updating data-encoding v2.5.0 -> v2.6.0
Updating either v1.10.0 -> v1.11.0
Updating fastrand v2.0.2 -> v2.1.0
Updating flate2 v1.0.28 -> v1.0.30
Updating hashbrown v0.14.3 -> v0.14.5
Updating humanize-bytes v1.0.5 -> v1.0.6
Updating io-uring v0.6.3 -> v0.6.4
Adding is_terminal_polyfill v1.70.0
Updating libc v0.2.153 -> v0.2.154
Updating libmimalloc-sys v0.1.35 -> v0.1.37
Updating lock_api v0.4.11 -> v0.4.12
Updating mimalloc v0.1.39 -> v0.1.41
Updating parking_lot v0.12.1 -> v0.12.2
Updating parking_lot_core v0.9.9 -> v0.9.10
Updating quote v1.0.35 -> v1.0.36
Updating raw-cpuid v11.0.1 -> v11.0.2
Updating redox_syscall v0.4.1 -> v0.5.1
Updating rustix v0.38.32 -> v0.38.34
Updating rustls-pki-types v1.4.1 -> v1.5.0
Updating rustls-webpki v0.102.2 -> v0.102.3
Updating serde v1.0.197 -> v1.0.200
Updating serde_derive v1.0.197 -> v1.0.200
Updating serde_json v1.0.115 -> v1.0.116
Updating signal-hook-registry v1.4.1 -> v1.4.2
Updating simd-json v0.13.9 -> v0.13.10
Updating socket2 v0.5.6 -> v0.5.7
Updating thiserror v1.0.58 -> v1.0.59
Updating thiserror-impl v1.0.58 -> v1.0.59
Updating time v0.3.34 -> v0.3.36
Updating time-macros v0.2.17 -> v0.2.18
Updating toml_edit v0.22.9 -> v0.22.12
Updating winapi-util v0.1.6 -> v0.1.8
Updating windows-targets v0.52.4 -> v0.52.5
Updating windows_aarch64_gnullvm v0.52.4 -> v0.52.5
Updating windows_aarch64_msvc v0.52.4 -> v0.52.5
Updating windows_i686_gnu v0.52.4 -> v0.52.5
Adding windows_i686_gnullvm v0.52.5
Updating windows_i686_msvc v0.52.4 -> v0.52.5
Updating windows_x86_64_gnu v0.52.4 -> v0.52.5
Updating windows_x86_64_gnullvm v0.52.4 -> v0.52.5
Updating windows_x86_64_msvc v0.52.4 -> v0.52.5
Updating winnow v0.6.5 -> v0.6.7
|
||
|---|---|---|
| .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.
Auxiliary software
There are also some auxiliary applications and libraries.
Tracker load testing
Load test applications for aquatic and other trackers, useful for profiling:
- aquatic_udp_load_test - BitTorrent over UDP
- aquatic_http_load_test - BitTorrent over HTTP
- aquatic_ws_load_test - WebTorrent
Automated benchmarking of aquatic and other trackers: aquatic_bencher
Client ⇄ tracker communication
Libraries for communication between clients and trackers:
- aquatic_udp_protocol - BitTorrent over UDP
- aquatic_http_protocol - BitTorrent over HTTP
- aquatic_ws_protocol - WebTorrent
Other
- 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 ;-)
