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.
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, sharing, and Motrix Next integration surfaces. The reference-alignment work is tracked in docs/maintenance/ed2k-refactor/, with obsolete legacy structures removed or replaced by aria2-next-native mechanisms.
| Surface | Compatibility target |
|---|---|
| Executable | aria2-next |
| CLI | aria2 option names and behavior |
| Configuration | aria2 config file format |
| Sessions | aria2 session and input file conventions |
| RPC | aria2 JSON-RPC methods and response shapes |
| Library | public libaria2 headers under src/includes/aria2/ |
Motrix Next embeds this engine, but release artifacts are ordinary aria2-compatible binaries.
Download a file:
aria2-next https://example.com/file.isoDownload an ED2K file link:
aria2-next '<ed2k-file-link>'Run the JSON-RPC server:
aria2-next --enable-rpc --rpc-listen-all=false --rpc-listen-port=6800Inspect enabled features and build details:
aria2-next --version
aria2-next --help=#ed2k| Area | Status |
|---|---|
| Engine | aria2-compatible aria2-next binary |
| Primary consumer | Motrix Next sidecar engine |
| External consumers | Existing aria2 scripts, frontends, RPC clients, and automation |
| Build system | CMake 3.25+ with Ninja presets |
| Release targets | macOS, Windows, and Linux on x64 and ARM64 |
| Additional packaging | Android ARM64 release builds |
| Maintenance | Maintained by AnInsomniacy since 2026 |
| Maintenance record | Preserved upstream issue review matrix |
cmake --preset default
cmake --build --preset default
ctest --preset default
build/default/aria2-next --versionPlain Ninja builds are also supported:
cmake -S . -B build/default -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build/default
ctest --test-dir build/default --output-on-failureCommon options include ARIA2_ENABLE_BITTORRENT, ARIA2_ENABLE_METALINK, ARIA2_ENABLE_WEBSOCKET, ARIA2_ENABLE_LIBARIA2, ARIA2_ENABLE_STATIC, ARIA2_RELEASE_SIZE_OPTIMIZED, ARIA2_RELEASE_LTO, ARIA2_WITH_WINTLS, ARIA2_WITH_OPENSSL, ARIA2_WITH_GNUTLS, ARIA2_WITH_LIBXML2, ARIA2_WITH_EXPAT, ARIA2_WITH_CARES, ARIA2_WITH_ZLIB, ARIA2_WITH_SQLITE3, and ARIA2_WITH_LIBSSH2.
Async DNS builds require c-ares 1.34.6 or newer.
Prebuilt artifacts are published on the GitHub Releases page.
| Platform | Architecture | Artifact |
|---|---|---|
| Linux | x86_64 | aria2-next-<version>-linux-x86_64 |
| Linux | ARM64 | aria2-next-<version>-linux-aarch64 |
| macOS | Apple Silicon | aria2-next-<version>-macos-arm64 |
| macOS | Intel | aria2-next-<version>-macos-x86_64 |
| Windows | x86_64 | aria2-next-<version>-windows-x86_64.exe |
| Windows | ARM64 | aria2-next-<version>-windows-arm64.exe |
| Checksums | all release assets | aria2-next-<version>-checksums.sha256 |
Linux and macOS downloads are executable files. If your browser clears the executable bit, run chmod +x ./aria2-next-<version>-<platform>.
Release binaries verify HTTPS certificates by default. Windows releases use WinTLS and the Windows trust store. OpenSSL and GnuTLS builds use system CA loading first, then a detected or explicitly configured CA bundle fallback. Official release builds also enable the size-optimized release profile so standalone artifacts keep the current dependency baseline without carrying avoidable dead code.
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.
The audit separates confirmed fixes, already-fixed reports, documented behavior, environment issues, platform issues, site-specific reports, non-reproducible reports, and larger architecture limitations.
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 standalone 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 uploads the final binaries and checksum file only to the workflow run artifact named aria2-next-<version>-release-assets. Published GitHub Releases must use a v{PROJECT_VERSION} tag that matches CMakeLists.txt.
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 and Docker build contexts.
| 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, Dockerfiles, and package assets |
third_party/ |
vendored source with explicit ownership rules |
tools/ |
local developer helpers |
Same as aria2: GPLv2. The OpenSSL linking exception text is preserved in docs/licenses/OPENSSL.md.