Warning
ED2K/eMule support is now available in aria2-next, but it should be treated as initial support. The implementation is reference-aligned and locally verified, yet the public ED2K network is old, inconsistent, and operationally fragile. Real-world downloads may still hit bugs, peer incompatibilities, LowID/firewall limits, source churn, Kad edge cases, or unsupported legacy behavior.
Summary
aria2-next 2.1.0 introduces native ED2K/eMule support integrated into the existing aria2-next command, RPC, session, disk, and CMake architecture. This release focuses on practical protocol support, truthful capability advertising, local verification, and Motrix Next-facing status/search fields.
Added
- Native ED2K file link parsing with MD4 root hashes, part hashes, AICH roots, inline sources, source user hashes, crypt metadata, UTF-8 names, and protocol file-size limits.
- ED2K server support for TCP login, HighID/LowID state, source discovery, server metadata, server lists, server messages, TCP/UDP status, global source requests, packed source replies, and callback state.
- ED2K peer support for hello/hello-answer, eMule info, filename/status/hashset exchange, Source Exchange, AICH requests, queue rank handling, upload requests, part transfer, compressed parts, retry/backoff state, and disk-safe range validation.
- Kad support for nodes.dat bootstrap, bootstrap request/response, hello, routing, traversal, source search, source publish, keyword search packets, firewalled checks, refresh, transaction expiry, ping/pong, and durable routing state.
- ED2K sharing and upload support through native shared-file metadata, shared responses, upload queue admission, queue ranks, slot limits, upload accounting, peer-credit state, and duplicate user-hash protection.
- ED2K RPC and Motrix Next fields for search results, generated
ed2kLinkvalues, source counts, media metadata, source network, nestedaria2.tellStatusED2K state, Kad state, server state, peer state, share state, and upload state. - Command-level ED2K tests covering server source discovery, peer handshake/download setup, and Kad bootstrap/source-search peer merge using localhost only.
Changed
- ED2K capability advertising now reports only implemented behavior. Unsupported multipacket envelopes, file identifier envelopes, encrypted transport, secure identification, peer Kad capability bits, Kad1, GUI-only behavior, legacy database imports, and UI/social features remain unadvertised or pruned.
- ED2K metadata ownership uses aria2-next-native control files, session state, shared store, upload queue, RPC, and disk paths instead of legacy part.met, known.met, known2.met, clients.met, or GUI database ownership.
- Release versioning documentation now clarifies standard SemVer bump semantics, so a minor bump from
2.0.6becomes2.1.0.
Fixed
- Kad bootstrap handling no longer sends
KAD_HELLO_REQback to the bootstrap responder when the responder lists itself as a returned contact. - ED2K hashset handling follows the reference ED2K theoretical part-hash count, including exact PARTSIZE boundary behavior.
- Source Exchange request selection now follows remote capability truth and skips unsupported or require-crypt paths until matching transport exists.
- Upload queue handling rejects duplicate user hashes so one remote ED2K identity cannot occupy multiple queue entries.
- Search result parsing maps legacy named media metadata such as
codecinto stable RPC fields.
Downloads
| Platform | Download |
|---|---|
| Linux x86_64 | aria2-next-2.1.0-linux-x86_64
|
| Linux ARM64 | aria2-next-2.1.0-linux-aarch64
|
| macOS Apple Silicon | aria2-next-2.1.0-macos-arm64
|
| macOS Intel | aria2-next-2.1.0-macos-x86_64
|
| Windows x86_64 | aria2-next-2.1.0-windows-x86_64.exe
|
| Windows ARM64 | aria2-next-2.1.0-windows-arm64.exe
|
| Checksums | aria2-next-2.1.0-checksums.sha256
|