# tatsuhiro-t/aria2

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tatsuhiro-t-aria2).**

41,225 stars · 3,867 forks · C++ · GPL-2.0

## Links

- GitHub: https://github.com/tatsuhiro-t/aria2
- Homepage: https://aria2.github.io/
- awesome-repositories: https://awesome-repositories.com/repository/tatsuhiro-t-aria2.md

## Description

aria2 is a multi-protocol download manager and BitTorrent client. It functions as a command-line utility and a background daemon capable of retrieving files via HTTP, HTTPS, FTP, SFTP, BitTorrent, and Metalink.

The project distinguishes itself by supporting multi-source downloading, which allows a single file to be retrieved from several different sources and protocols simultaneously. It operates as a download server by exposing JSON-RPC and XML-RPC interfaces over HTTP and WebSocket, enabling remote task management from external programs.

The system optimizes throughput by splitting files into segments for parallel downloading and maximizing bandwidth utilization. It includes peer-to-peer capabilities such as Distributed Hash Table peer discovery, UDP tracker integration, and peer exchange.

Data integrity is maintained through cryptographic checksum validation, while network access is managed via session cookies, secure HTTP authentication, and transfer speed throttling.

## Tags

### Networking & Communication

- [BitTorrent Clients](https://awesome-repositories.com/f/networking-communication/bittorrent-clients.md) — Implements a lightweight BitTorrent client featuring DHT, PEX, and UDP tracker support.
- [Multi-Protocol Transfer Libraries](https://awesome-repositories.com/f/networking-communication/multi-protocol-transfer-libraries.md) — Provides a unified engine that abstracts multiple transfer protocols for simultaneous data retrieval from diverse sources.
- [High-Speed Download Optimizations](https://awesome-repositories.com/f/networking-communication/high-speed-download-optimizations.md) — Increases download speeds by splitting large files into segments and retrieving them from multiple sources concurrently.
- [Multi-Protocol Clients](https://awesome-repositories.com/f/networking-communication/multi-protocol-clients.md) — Retrieves data from diverse sources using HTTP, HTTPS, FTP, SFTP, BitTorrent, and Metalink protocols. ([source](https://github.com/tatsuhiro-t/aria2#readme))
- [Peer Discovery](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/peer-discovery.md) — Implements a mainline-compatible Distributed Hash Table for locating peers in decentralized networks without central trackers.
- [Segmented Downloaders](https://awesome-repositories.com/f/networking-communication/segmented-downloaders.md) — Maximizes throughput by splitting files into smaller segments that are fetched concurrently across multiple connections.
- [Bandwidth Management](https://awesome-repositories.com/f/networking-communication/bandwidth-management.md) — Maximizes network throughput by downloading from multiple sources and protocols simultaneously. ([source](https://github.com/tatsuhiro-t/aria2#readme))
- [JSON-RPC Interfaces](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/remote-procedure-call-frameworks/json-rpc-interfaces.md) — Exposes a JSON-RPC interface over HTTP and WebSockets to allow external clients to manage transfers.
- [Download Automation](https://awesome-repositories.com/f/networking-communication/download-automation.md) — Automates the acquisition of multiple files by processing lists of URIs provided via text files or standard input. ([source](https://github.com/tatsuhiro-t/aria2#readme))
- [Remote Task Interfaces](https://awesome-repositories.com/f/networking-communication/download-automation/remote-task-interfaces.md) — Exposes JSON-RPC and XML-RPC interfaces over HTTP and WebSocket for remote management of download tasks.
- [Peer Discovery](https://awesome-repositories.com/f/networking-communication/peer-discovery.md) — Implements a mainline-compatible Distributed Hash Table for locating peers without relying on central trackers. ([source](https://github.com/tatsuhiro-t/aria2#readme))
- [Download Control Servers](https://awesome-repositories.com/f/networking-communication/rpc-servers/download-control-servers.md) — Operates as a background daemon that exposes a JSON-RPC and WebSocket interface for external task management.
- [UDP Tracker Clients](https://awesome-repositories.com/f/networking-communication/udp-tracker-clients.md) — Communicates with UDP trackers to discover available peers and coordinate data transfers in BitTorrent networks. ([source](https://github.com/tatsuhiro-t/aria2#readme))

### System Administration & Monitoring

- [Torrent Transfer Managers](https://awesome-repositories.com/f/system-administration-monitoring/activity-monitors/torrent-progress-monitors/torrent-transfer-managers.md) — Optimizes BitTorrent content retrieval using peer discovery, DHT, PEX, and web-seeding mechanisms. ([source](https://github.com/tatsuhiro-t/aria2#readme))
- [Remote Control Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/remote-control-interfaces.md) — Provides JSON-RPC and XML-RPC endpoints over HTTP and WebSocket for programmatic control of download tasks. ([source](https://github.com/tatsuhiro-t/aria2#readme))

### Web Development

- [Multi-Protocol Downloaders](https://awesome-repositories.com/f/web-development/multi-protocol-downloaders.md) — Increases download speed and reliability by retrieving a single file from multiple sources and protocols simultaneously. ([source](https://github.com/tatsuhiro-t/aria2#readme))
- [Multi-Source Aggregators](https://awesome-repositories.com/f/web-development/multi-protocol-downloaders/multi-source-aggregators.md) — Increases transfer speeds by retrieving a single file from several different sources and protocols simultaneously.

### Development Tools & Productivity

- [File Processing Utilities](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/file-processing-utilities.md) — Automates the download of large sets of files by processing lists of URIs from input files.
- [Network Throttling](https://awesome-repositories.com/f/development-tools-productivity/execution-throttling/network-throttling.md) — Throttles the rate of data transfer to prevent consuming all available network bandwidth. ([source](https://github.com/tatsuhiro-t/aria2#readme))

### Education & Learning Resources

- [Checksum Algorithms](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/numerical-statistical-logic/checksum-algorithms.md) — Verifies downloaded file chunks against checksums to ensure data is received correctly and without corruption. ([source](https://github.com/tatsuhiro-t/aria2#readme))

### Operating Systems & Systems Programming

- [Background Daemons](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-services/background-daemons.md) — Operates as a background system process to manage persistent network connections and asynchronous transfer tasks.

### Security & Cryptography

- [Cryptographic Hash Verifiers](https://awesome-repositories.com/f/security-cryptography/cryptographic-hash-verifiers.md) — Implements cryptographic hash verification to ensure the integrity and consistency of downloaded data segments.

### Part of an Awesome List

- [General Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/general-utilities.md) — HTTP, FTP, SFTP, BitTorrent and Metalink download utility.
