aria2 is remarkable open source software. For over a decade it has been one of the most capable
download engines available, trusted by countless tools and users worldwide. We are deeply grateful
to the original authors and contributors of the aria2 project. They built something that has stood
the test of time, and that enduring quality is the best testament to their vision and craftsmanship.
But upstream development has slowed dramatically in recent years. Dependencies grew stale, builds
broke on modern platforms, and a backlog of bugs went unaddressed. We picked up the baton: migrated
the codebase to a modern build framework, triaged and fixed a substantial number of upstream issues,
and introduced ED2K protocol support for the first time. A full audit trail is preserved in
docs/maintenance/upstream-issue-review/matrix.csv.
Aria2 Next is an actively maintained aria2-compatible engine for everyone, and it is also the embedded
engine used by Motrix Next. Original interfaces, including options, configuration, sessions, JSON-RPC,
and libaria2, remain intact so downstream projects get a seamless upgrade. The focus is straightforward:
release reliability, current dependency baselines, and ongoing compatibility fixes. Same engine, renewed
foundation.
README
Aria2 Next
Maintained aria2 fork with extensive bug fixes and modernized architecture.
Why Aria2 Next?
aria2 is remarkable open source software. For over a decade it has been one of the most capable download engines available, trusted by countless tools and users worldwide. We are deeply grateful to the original authors and contributors of the aria2 project. They built something that has stood the test of time, and that enduring quality is the best testament to their vision and craftsmanship.
But upstream development has slowed dramatically in recent years. Dependencies grew stale, builds broke on modern platforms, and a backlog of bugs went unaddressed. We picked up the baton: migrated the codebase to a modern build framework, triaged and fixed a substantial number of upstream issues, and introduced ED2K protocol support for the first time. A full audit trail is preserved in docs/maintenance/upstream-issue-review/matrix.csv.
Aria2 Next is an actively maintained aria2-compatible engine for everyone, and it is also the embedded engine used by Motrix Next. Original interfaces, including options, configuration, sessions, JSON-RPC, and libaria2, remain intact so downstream projects get a seamless upgrade. The focus is straightforward: release reliability, current dependency baselines, and ongoing compatibility fixes. Same engine, renewed foundation.
Native ED2K/eMule Support
Aria2 Next includes native ED2K/eMule support reimplemented inside aria2's existing engine architecture from authoritative eMule, aMule, MLDonkey, Wireshark, and protocol documentation references. ED2K works through normal aria2-style CLI, session, and JSON-RPC flows, including source discovery, peer transfer, search, task-level sharing, upload cooperation, queue maintenance, and Motrix Next integration surfaces. The reference-alignment and download-hardening work is tracked in and , with obsolete legacy structures removed or replaced by aria2-next-native mechanisms.
The container runs as a non-root user. On first start it creates /config/aria2.conf from the bundled default configuration. That default enables JSON-RPC inside the container, stores downloads in /downloads, and keeps session state in /var/lib/aria2-next. Add --rpc-secret= before exposing RPC beyond a trusted local network.
Release binaries verify HTTPS certificates by default. Windows releases use WinTLS and the Windows trust store. Linux OpenSSL builds use the system OpenSSL 3 runtime so certificate discovery follows the host distribution. macOS OpenSSL and GnuTLS builds use their backend's system trust loading. Explicit CA files remain available through --ca-certificate.
Maintenance Audit
The durable audit artifacts live under docs/maintenance/. The preserved matrix contains 137 reviewed upstream bug issues, including 43 rows with final state fixed-verified.
CMakeLists.txt is the project version source of truth. Release tags use v{PROJECT_VERSION}.
The release workflow runs when a matching GitHub Release is published. It validates the tag against CMakeLists.txt, builds all maintained platform binaries, generates SHA-256 checksums, and uploads the release executables to the published release. Source code is provided by the GitHub release tag source archives.
Tag pushes alone do not publish release builds. workflow_dispatch remains available for release-path validation of the current workflow commit and archives the final binaries and checksum file to the workflow run artifact named aria2-next--release-assets. Published GitHub Releases must use a v{PROJECT_VERSION} tag that matches CMakeLists.txt.
Container images are published separately by the manual Docker Publish workflow. It assembles the Linux multi-architecture image from the latest GitHub Release binaries and publishes ghcr.io/aninsomniacy/aria2-next:latest plus the matching v{PROJECT_VERSION} tag.
Dependency Baseline
Release dependency versions are tracked in packaging/dependencies.env.
The same file records versions, archive names, download URLs, and SHA-256 hashes for source archives consumed by release workflows.
Repository Layout
Path
Purpose
CMakeLists.txt
Project declaration and module entry point
CMakePresets.json
Standard configure, build, and test presets
cmake/
CMake modules, source inventories, and generated config templates
src/
aria2 command-line client and core implementation
src/includes/aria2/
public libaria2 headers
tests/
CppUnit test suite registered through CTest
docs/
manual sources, completion tooling, and maintenance records
packaging/
release dependencies, cross-build scripts, and package assets