High-performance open BitTorrent tracker (UDP, HTTP, WebTorrent)
Find a file
Joakim Frostegård d551d410d2 Run cargo update
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
2024-03-30 10:52:46 +01:00
.github Fix file transfer CI 2024-01-27 11:18:22 +01:00
crates bencher: update README 2024-03-21 17:07:34 +01:00
docker Add warning to aquatic_udp.Dockerfile 2024-01-27 18:09:38 +01:00
documents Improve udp README and latest load test md 2024-02-10 21:29:12 +01:00
scripts bencher: also bench aquatic_udp with io_uring 2024-02-09 01:21:24 +01:00
.dockerignore Add "documents" to .dockerignore 2022-07-23 17:50:54 +02:00
.gitignore work on http_private, including parsing announce requests 2022-04-02 13:32:36 +02:00
Cargo.lock Run cargo update 2024-03-30 10:52:46 +01:00
Cargo.toml Rename aquatic_load_tester to aquatic_bencher 2023-12-28 17:42:25 +01:00
CHANGELOG.md Update CHANGELOG 2024-02-10 22:52:36 +01:00
deny.toml add some allowed licences to deny.toml 2020-07-21 01:53:43 +02:00
LICENSE Decide to use Apache 2.0 license, add file and update Cargo.toml's 2020-04-20 16:54:43 +02:00
README.md README: improve support software section 2024-03-30 10:51:37 +01:00
TODO.md udp: add ConnectionValidator.update_elapsed, call regularly 2024-02-10 22:47:36 +01:00

aquatic: high-performance open BitTorrent tracker

CI

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:

Performance of the UDP implementation

UDP BitTorrent tracker throughput

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

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 ;-)