It was forked from xMule project back in september 2003 to drive it to a brand new direction and quality. Uses wxWidgets for multiplatform support.

Features

  • aMule works on Linux, Mac, FreeBSD, OpenBSD, NetBSD, Solaris, Windows, and probably other OSs that noone tested yet.
  • aMule works on x86, amd64, ppc, ppc64, sparc, alpha, and AFAIK arm (probably others also) CPU architectures.
  • aMule has core/GUI separation, a mature daemon, and a not-so-mature-but-still-working remote GUI, along with the webserver and the text-mode user interface (amulecmd).
  • aMule has the latest improvements on ed2k protocol, both on eserver compatibility (thanks lugdunum) and client<->client communication (thanks eMule dev. team). This includes eMule extensions over original ed2k protocol.
  • aMule supports all wxWidgets flavours from 2.4.2 to the brand new 2.6.0. The recomended version is, however, wxWidgets 2.6.0.
  • aMule supports Unicode on GUI, internals, and network, and its totally or partially translated to 28 languages
  • And last but not least, aMule has the best users and supporters community I've ever seen. I said it and I'll say it again: without you guys, this project would have never reached its current state.

What's New

First point release after the 3.0.0 rebirth, and the first cut entirely on the new amule-org/amule repository. 147 merged PRs of post-launch work: a new IP2Country preferences panel, remote-GUI (amulegui) improvements over EC, smarter search, AICH request rate-limiting, a top-to-bottom WebUI / WebServer modernization and security pass, a Weblate-driven translation pipeline, and a one-click release process. No on-disk format or config changes – a drop-in upgrade from 3.0.0.

Highlights

  • IP2Country preferences panel. A new Preferences page to choose the GeoIP source – DB-IP, MaxMind, or a custom URL – instead of editing config by hand (#113). IP2Country is now enabled by default and hard-fails at configure if the dependency is missing (#119).
  • Remote GUI over EC. amulegui now populates the Server Info tab from amuled (#120), keeps statistics and Kad graphs alive across tab switches (#135), and stops offering preferences it can't actually push to the daemon (#122).
  • Smarter search. Modern file formats and corrected extension categories in the type filter (#189), new Length / Bitrate / Codec columns in results (#139), a working Related Files lookup (#154), and global search that works even with Kad disabled (#38).
  • AICH anti-abuse + speed. OP_AICHREQUEST is now rate-limited via CheckForAggressive(), and LoadHashSet gained an O(1) root-hash -> offset cache with a self-healing linear-scan fallback, so AICH recovery on large known2 files no longer rescans the whole file per request (#186, [#191], [#193]).
  • WebUI / WebServer reborn. The default web template was dragged out of its 2005 Dreamweaver origins: HTML5 doctype, presentational markup migrated to style.css, the maquette.dwt template and dead MM_* rollover JavaScript removed, favicon refreshed, and the whole thing re-encoded as UTF-8. On top of the cleanup came real features – select-all checkboxes, a working priority selector on the Shared page, download/delete confirmation with file counts, auto-refresh that pauses while rows are selected, button tooltips, and unified styling and size/speed units.
  • WebUI security hardening. XSS defences (htmlspecialchars + addslashes, sort-param whitelisting), CWebSocket request-parser hardening and memory-leak fixes, and a sweep of the embedded PHP interpreter (php_core_lib, php_amule_lib, php_syntree, php_native_split) fixing memory frees, base16/base64 handling, and long-standing parser bugs.
  • Translations via Weblate. Translation now flows through a hosted Weblate instance feeding the repo, with a --no-wrap catalog policy and build-time po4a manpage rendering; sixteen catalog-update rounds landed this cycle.
  • One-click releases. Maintainers can cut a release from the GitHub Actions UI – pick a version, and the workflow tags, builds every platform, verifies the artifact set, and assembles a draft Release (#234).

IP2Country

  • New Preferences panel to select the GeoIP source: DB-IP, MaxMind, or a custom URL (#113).
  • Enabled by default; configure hard-fails when the dependency is missing rather than silently disabling (#119).

Remote GUI & Platform

  • amulegui populates the Server Info tab from amuled over EC (#120) and stops offering preferences it can't push to the daemon (#122).
  • Statistics + Kad graphs stay populated across tab switches (#135); the Kad status bar refreshes after StopKad() (#133).
  • Theme-aware colours: list-control text (#179) and statistics labels (#128) no longer hardcode *wxBLACK/BLUE/RED, fixing legibility on dark themes.
  • Window-state persistence: Messages columns + minimized-window geometry saved (#138); macOS persists list-control settings on Dock -> Quit (#141).
  • macOS Preferences left-rail tab icons padded (#130).
  • wxWebSession-cleanup _Exit workaround applied on all platforms to avoid a shutdown crash (#159).

Search & Networking

  • Global search works with Kad disabled (#38); Windows EC search fixed by using wxUIntPtr for m_currentSearch (#39).
  • File-type filter: miscategorised extensions corrected and modern formats added (#189).
  • Result columns: Length, Bitrate, Codec added (#139); Directories column moved to the end (#142).
  • Related Files lookup fixed; TCP/UDP server flags shown in Release builds too (#154).
  • EC search lifecycle: the prior Kad search is stopped when the EC client starts a new one (#36); late ed2k server replies dropped after the client switches to Kad (#37).
  • SO_REUSEADDR on the UDP socket so it rebinds cleanly after suspend/resume (#121).
  • Server Info log cleared at the transition source on ed2k disconnect / server switch (#163, [#164]).
  • UPnP ASCII tolower() scoped under LC_CTYPE=C so non-C locales don't corrupt device matching (#208).
  • Full path logged when an ed2k link collides with an existing file (#172).

AICH & Hashing

  • OP_AICHREQUEST rate-limited via CheckForAggressive() and LoadHashSet made O(1) through a root-hash -> offset cache (#186).
  • True linear-scan fallback when the cached offset is stale (#191); the cache self-heals on a successful rewind (#193).
  • UDP file-info handler short-circuits when the requesting client is banned (#192).

WebUI & WebServer

  • The biggest theme of the release by volume - driven mainly by ngosang, with the embedded-PHP work by RealGreenDragon.

Template modernization:

(#84); structural HTML errors corrected (#87); stray style.css brace removed and formatting normalized (#78); shared-files page re-encoded as UTF-8 with English alt-text (#80); higher-resolution transparent favicon (#112).

  • HTML5 doctype adopted; layout glitches from the switch corrected (#110, [#204]).
  • Presentational HTML attributes migrated to semantic CSS – text/element attrs (#95), table/iframe attrs (#102)
  • blocks consolidated into style.css (#89), JS nav rollovers replaced with CSS :hover (#92).
  • Dead Dreamweaver scaffolding removed: the maquette.dwt template (#88), MM_* JavaScript extracted then deleted once shown to be no-ops (#90, [#93]), stale onLoad tree calls in stats_tree.php (#111), and small deprecated CSS/HTML leftovers (#105).
  • blocks moved into

New WebUI features:

  • Priority selector wired up on the Shared page (#210).
  • Select-all checkbox on file tables (#212); auto-refresh pauses while checkboxes are selected (#213) and avoids the form-resubmission prompt (#230).
  • Download/delete actions confirm with a file count (#214).
  • Search-page controls improved (#215); button tooltips and clickable images (#216).
  • Unified button styles (#217), form controls (#206), and file size + speed units (#218); footer-bar background (#219); logo links home to Transfers (#209); clearer dropdown option labels (#207); footer "Download link" refreshes the main page (#81).

WebUI bug fixes:

  • Sorting downloads by sources never worked – fixed (#75).
  • Wrong MByte/GByte multipliers in the search size filters corrected (#76).
  • Division-by-zero guard on the downloads-page percentages (#83).
  • Login error message now actually shown, and made readable (#82, [#96]).
  • Static .css/.js served to unauthenticated clients so the login page styles correctly (#97).
  • amuleweb honours the per-user template dir when spawned by the GUI (#72); copy-pasted preferences code removed from the log page (#74).
  • ed2k links can be added via the footer links form (#145); search results cleared across cycles and on new search (#33).

Embedded PHP interpreter:

  • Memory freed correctly when casting array values (#108) and for for() header expression lists (#109).
  • OtherFunctions base16 decode, base64 footer append, duplicate .asf entry, and mp3 comment handling corrected (#30).
  • Interpreter sweep: php_native_split (#146), php_core_lib (#150), php_amule_lib_standalone (#151), php_amule_lib (#152), php_syntree (#153), with follow-ups (#155, [#156]).

WebUI Security

  • XSS hardening: htmlspecialchars + addslashes builtins added and remote-controlled strings escaped (#106); the search sort param whitelisted before being stored in the session (#107); broad WebUI/WebServer backend hardening (#91).
  • CWebSocket request parsing hardened for header casing, body bounds, cookie conversion, and MinGW portability (#27, [#28]); CWebSocket memory leaks fixed and review findings addressed (#29).

Translations

  • Translation moved to a hosted Weblate workflow feeding the repo; the README points contributors there (#71). Catalog rounds: [#57], [#66], [#100], [#123], [#147], [#160], [#165], [#170], [#184], [#187], [#199], [#200], [#202], [#211], [#229], [#235]; Brazilian Portuguese also refreshed by hand (#7), and the IP2Country strings translated into Italian (#129).
  • --no-wrap policy adopted for the app catalogs (#61) and extended to the manpage .po files (#67).
  • Non-ASCII output fixes: the logger writes stdout/stderr via utf8_str (#42); locale is initialised so non-ASCII strings stop mangling under the default C locale (#205, fixes [#203]); a real newline is used in a comment-dialog tooltip (#70).
  • Windows SPANISHINTERNATIONAL routed to po/es.po (#64).

Build System & CI

  • One-click release workflow from the Actions UI: tag → full matrix → artifact-manifest gate → draft Release (#234). Repo bootstrap: issue/PR templates (#12). The manpages-sync CI check disabled where Weblate PRs broke it (#68).
  • cryptopp-modern accepted by the build, with packager-friendly flags (#169); versioned libatomic.so.1 accepted in find_library (#176).
  • BUILD_TESTING off by default (#49); options.cmake typo/casing cleanup (#50); a pofiles dependency added to every NLS-aware executable (#98).
  • LLP64 portability: unsafe uses of long cleaned up (#65).
  • Toolbar ID collision with manually-added IDs resolved (#52); SearchDlg FALSE macro replaced with false (#48); IDC_SPINSEARCHAVAILABILITY spelling corrected (#51).

Shared Files & Preferences

  • SharedDirWatcher: the inotify race window on newly-created subdirectories closed (#227), with a follow-up so file CREATEs reliably reach NotifyPathAdded (#228).
  • First-run no longer wipes shareddir-*.dat during userhash init (#79) or promotes stale shareddir.dat entries to explicit shares (#86).
  • "Show Clients for" defaults to "All files" (#126).
  • English language-picker IDs corrected, with an explicit U.S. entry (#60).

Manpages & Docs

  • Translated manpages now rendered at build time with po4a (#94), with --no-update so the build doesn't dirty the source tree (#101).

README: a Translations section (#71), an amule-org column in the Development Statistics table (#62), and NetBSD added (#32).

Packaging & Flathub

  • Icons refreshed from a new 256×256 master (#15), then reverted to the established design upscaled to meet Flathub's 256px minimum (#21).
  • Flathub-strict manifest staged under packaging/flathub/ (#16), with metainfo + desktop polish for listing readiness (#17) and commit-pin bumps as the manifest tracked master (#23, [#24], [#26]).
  • Flatpak fixes: libbfd disabled in the sandboxed build (#19); the install-prefix locale dir registered for wxLocale lookup (#22); .mo catalogs shipped inside the main app rather than a separate .Locale extension (#25); all bundled languages surfaced in the Preferences Language picker on Flatpak (#175).
  • macOS: webserver templates bundled into aMule.app so the in-app WebUI resolves them (#195).

Known Limitations

Carried over from 3.0.0:

  • macOS .dmg is not yet code-signed or notarized – Gatekeeper warnings on first launch.
  • Flathub submission still pending – install the .flatpak directly with flatpak install for now.
  • AppImage isn't yet in AppImageLauncher's catalogue.

Contributors

This release is 147 merged PRs cut entirely on the new amule-org/amule repository. Particular thanks to:

  • got3nks – 59 PRs across search, amulegui / EC, AICH, IP2Country, packaging, locale, and the release tooling.
  • ngosang – 46 PRs; the WebUI / WebServer modernization, hardening, and UX features are almost entirely his.
  • Marcelo Jimenez (mrjimenez) – 9 PRs across the webserver, build system, and translations.
  • RealGreenDragon – 8 PRs fixing the embedded PHP interpreter.
  • danim7 – 2 PRs (global-search-without-Kad, Related Files + server flags).
  • peyoker – WebUI / WebServer security hardening (#91).
  • cardpuncher – NetBSD in the README (#32).