README.md

June 3, 2026 ยท View on GitHub

Aria2 Next icon

Aria2 Next

Maintained aria2 fork with extensive bug fixes and modernized architecture.

CI Release License: GPLv2

Platform: macOS, Windows, Linux, Android

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 docs/maintenance/ed2k-refactor/ and docs/maintenance/ed2k-download-hardening/, with obsolete legacy structures removed or replaced by aria2-next-native mechanisms.

Compatibility

SurfaceCompatibility target
Executablearia2-next
CLIaria2 option names and behavior
Configurationaria2 config file format
Sessionsaria2 session and input file conventions
RPCaria2 JSON-RPC methods and response shapes
Librarypublic libaria2 headers under src/includes/aria2/

Motrix Next embeds this engine, but release artifacts are ordinary aria2-compatible binaries.

Quick Start

Download a file:

aria2-next https://example.com/file.iso

Download 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=6800

Inspect enabled features and build details:

aria2-next --version
aria2-next --help=#ed2k

What This Repository Provides

AreaStatus
Enginearia2-compatible aria2-next binary
Primary consumerMotrix Next sidecar engine
External consumersExisting aria2 scripts, frontends, RPC clients, and automation
Build systemCMake 3.25+ with Ninja presets
Release targetsmacOS, Windows, and Linux on x64 and ARM64
Additional packagingAndroid ARM64 release builds
MaintenanceMaintained by AnInsomniacy since 2026
Maintenance recordPreserved upstream issue review matrix

Build

cmake --preset default
cmake --build --preset default
ctest --preset default
build/default/aria2-next --version

Plain 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-failure

Common options include ARIA2_ENABLE_BITTORRENT, ARIA2_ENABLE_METALINK, ARIA2_ENABLE_WEBSOCKET, ARIA2_ENABLE_LIBARIA2, ARIA2_STATIC_DEPENDENCIES, 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.

Downloads

Prebuilt artifacts are published on the GitHub Releases page.

PlatformArchitectureArtifact
Linuxx86_64aria2-next-<version>-linux-x86_64
LinuxARM64aria2-next-<version>-linux-aarch64
macOSApple Siliconaria2-next-<version>-macos-arm64
macOSIntelaria2-next-<version>-macos-x86_64
Windowsx86_64aria2-next-<version>-windows-x86_64.exe
WindowsARM64aria2-next-<version>-windows-arm64.exe
Checksumsall release assetsaria2-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. 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.

The audit separates confirmed fixes, already-fixed reports, documented behavior, environment issues, platform issues, site-specific reports, non-reproducible reports, and larger architecture limitations.

Release and Versioning

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 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.

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 and Docker build contexts.

Repository Layout

PathPurpose
CMakeLists.txtProject declaration and module entry point
CMakePresets.jsonStandard 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

License

Same as aria2: GPLv2. The OpenSSL linking exception text is preserved in docs/licenses/OPENSSL.md.