3 releases (breaking)

0.9.0 May 3, 2024
0.8.0 Mar 18, 2023
0.2.0 Mar 26, 2022

#1767 in Network programming

Download history 18/week @ 2024-08-12 16/week @ 2024-08-19 52/week @ 2024-08-26 15/week @ 2024-09-02 4/week @ 2024-09-09 24/week @ 2024-09-16 46/week @ 2024-09-23 15/week @ 2024-09-30 8/week @ 2024-10-07 55/week @ 2024-10-14 11/week @ 2024-10-21 9/week @ 2024-10-28 31/week @ 2024-11-04 23/week @ 2024-11-18 16/week @ 2024-11-25

71 downloads per month
Used in 10 crates (8 directly)

Apache-2.0

9KB
68 lines

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.

Auxiliary software

There are also some auxiliary applications and libraries.

Tracker load testing

Load test applications for aquatic and other trackers, useful for profiling:

Automated benchmarking of aquatic and other trackers: aquatic_bencher

Client ⇄ tracker communication

Libraries for communication between clients and trackers:

Other

  • aquatic_peer_id - extract BitTorrent client information from peer identifiers

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

Dependencies

~2MB
~45K SLoC