High-performance open BitTorrent tracker (UDP, HTTP, WebTorrent)
Find a file
Joakim Frostegård 61f053b26e Run cargo update
Updating ciborium v0.2.1 -> v0.2.2
    Updating ciborium-io v0.2.1 -> v0.2.2
    Updating ciborium-ll v0.2.1 -> v0.2.2
      Adding crunchy v0.2.2
    Updating half v1.8.2 -> v2.3.1
    Updating pin-project v1.1.3 -> v1.1.4
    Updating pin-project-internal v1.1.3 -> v1.1.4
    Updating proc-macro2 v1.0.76 -> v1.0.78
    Updating regex v1.10.2 -> v1.10.3
    Updating regex-automata v0.4.3 -> v0.4.5
    Updating serde v1.0.195 -> v1.0.196
    Updating serde_derive v1.0.195 -> v1.0.196
    Updating serde_json v1.0.111 -> v1.0.112
    Updating value-trait v0.8.0 -> v0.8.1
    Updating winnow v0.5.34 -> v0.5.35
2024-01-27 11:01:42 +01:00
.github Add plain HTTP transfer CI; update TODO 2024-01-27 10:58:36 +01:00
crates http: avoid heap allocation for torrents with few peers; refactor 2024-01-27 10:58:03 +01:00
docker use zerocopy in udp protocol, easy running transfer CI locally 2023-12-02 12:24:41 +01:00
documents Update ws load test 2023-01-26 21:12:21 +01:00
scripts bencher: update config defaults, use load test max_response_peers 2024-01-03 19:52:03 +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-01-27 11:01:42 +01:00
Cargo.toml Rename aquatic_load_tester to aquatic_bencher 2023-12-28 17:42:25 +01:00
CHANGELOG.md http: avoid heap allocation for torrents with few peers; refactor 2024-01-27 10:58:03 +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 Update README 2023-12-27 19:08:00 +01:00
TODO.md Add plain HTTP transfer CI; update TODO 2024-01-27 10:58: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 comparison

More benchmark details are available here.

Usage

Please refer to the README pages for the respective implementations listed in the table above.

Architectural overview

Architectural overview of aquatic

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