aMule

aMule is an eMule-like client for the eDonkey and Kademlia networks.
Forum | Documentation | FAQ
Important Notice
The work in aMule will continue in the new aMule-org repo. The reason we had to create a new organization is that Gonosztopi, who is the single owner of aMule Project, has been unreachable. As a result, in the aMule-project organization we became unable to update the infrastructure to the project's needs.
Overview
aMule is a multi-platform client for the eD2k / Kad file-sharing network, originally a fork of the Windows client eMule (via xMule and lMule). aMule started in August 2003.
Supported platforms today: Linux, FreeBSD, OpenBSD, NetBSD, macOS, and Windows (MSYS2 / mingw-w64), on both x86_64 and ARM64.
aMule aims to stay close to eMule in look-and-feel so users moving between the two have minimal friction. New eMule protocol-level features are generally adopted into aMule shortly after.
| Distributions | ||
|---|---|---|
Development Statistics
| aMule-project (frozen) | aMule-org |
|---|---|
Features
amule— all-in-one GUI client.amuled— headless daemon, no GUI.amulegui— remote GUI; connects to a local or remoteamuledover the EC (External Connection) protocol.amuleweb— HTTP interface to a runningamuled.amulecmd— interactive CLI for a runningamuled.
Installation
aMule ships pre-built binaries for every major desktop. Building from source is also supported.
Pre-built binaries (recommended)
Download the latest release for your platform from the Releases page. Quick start:
- Linux — AppImage (any distro) or Flatpak: download,
chmod +x, run. - macOS — Universal2
.dmg: download, drag to/Applications. - Windows — choose either the NSIS installer
.exe(Start-menu shortcuts, uninstaller, x64 / ARM64) or the portable.zip(no install, unzip and run).
See docs/INSTALL_BINARIES.md for per-platform notes — including the macOS unsigned-binary workaround, the Windows SmartScreen prompt, and the Linux FUSE dependency for AppImage.
Building from source
aMule uses CMake. Quick start:
cmake -B build -DBUILD_MONOLITHIC=YES -DBUILD_REMOTEGUI=YES
cmake --build build -j"$(nproc)"
sudo cmake --install build
See docs/INSTALL.md for the full list of dependencies,
build options (BUILD_DAEMON, BUILD_AMULECMD, ENABLE_NLS, ENABLE_UPNP,
ENABLE_IP2COUNTRY, etc.), and platform-specific notes. The CI workflow
.github/workflows/ccpp.yml is the
authoritative reference for the exact deps and flags used to build aMule
on Linux, macOS, and Windows.
Setting Up
aMule comes with reasonable default settings and should be usable as-is. Two configuration steps are still worth doing on day one.
Open the ports — get a HighID
To receive a HighID you need to open aMule's ports on your firewall and/or forward them on your router. See the network connectivity guide for details.
Set bandwidth limits
aMule ships with both upload and download caps disabled by default
(MaxUpload=0, MaxDownload=0 — both interpreted as literal
unlimited). On a connection that aMule can saturate, that means
aMule will eat all the bandwidth available to it, starving every
other application sharing the link. Setting realistic limits is
strongly recommended.
Under Preferences → Connection, set the limits to roughly 80 %
of your actual line speed to avoid saturating the upstream and
starving your own traffic. Values are in kilobytes per second
(kB/s); ISP advertised speeds are usually in megabits per
second (Mbps). To convert, multiply Mbps by 125.
Example: a 100 Mbps / 20 Mbps fibre line → roughly 12 500 kB/s downstream and 2 500 kB/s upstream. Set the limits to about 10 000 down / 2 000 up to stay below the line cap.
Reporting Bugs
If you find a bug or miss a feature, please open an issue on
GitHub (preferred) or report it on the forum. A good bug report
includes the exact aMule version (amuled --version), the platform you're
on, and steps to reproduce. See the bug report guide for
detailed instructions on attaching backtraces and reproducer steps.
Contributing
Contributions are always welcome!
See the contributing guide for how to get involved. In short:
- Code — fix a bug, implement a feature, improve performance. The preferred path is a pull request on GitHub; patches on the forum also work.
- Translation — translate aMule, its documentation, or its website into your language.
- Documentation — help improve the project documentation at amule-org.github.io/docs.
Translations
The translations of the application interface and the man pages live in this repository and can be edited either by opening a pull request — see the Translations guide — or through Weblate, a translation tool that stays in sync with git — see the Weblate guide.