# aMule

![aMule](https://raw.githubusercontent.com/amule-org/amule/master/org.amule.aMule.png)

aMule is an eMule-like client for the eDonkey and Kademlia networks.

[Forum] | [Documentation] | [FAQ]

[Forum]:         https://github.com/amule-org/amule/discussions "aMule Forum"
[Documentation]: https://amule-org.github.io/docs "aMule Documentation"
[FAQ]:           https://amule-org.github.io/docs/manual/faq "FAQ on aMule"

## Important Notice

The work in aMule will continue in the new [aMule-org repo](https://github.com/amule-org/amule). The reason we had to create a new organization is that Gonosztopi, who is the single owner of [aMule Project](https://github.com/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, 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 |
| --- |
| [![Arch Linux](https://repology.org/badge/version-for-repo/arch/amule.svg)](https://archlinux.org/packages/extra/x86_64/amule/) |
| [![AUR](https://repology.org/badge/version-for-repo/aur/amule.svg)](https://aur.archlinux.org/packages/amule) |
| [![Debian stable](https://badges.debian.net/badges/debian/stable/amule/version.svg)](https://buildd.debian.org/amule) |
| [![Debian testing](https://badges.debian.net/badges/debian/testing/amule/version.svg)](https://buildd.debian.org/amule) |
| [![FreeBSD](https://repology.org/badge/version-for-repo/freebsd/amule.svg)](https://www.freshports.org/net-p2p/amule/) |
| [![Gentoo](https://repology.org/badge/version-for-repo/gentoo/amule.svg)](https://packages.gentoo.org/packages/net-p2p/amule) |
| [![Kali Linux](https://repology.org/badge/version-for-repo/kali_rolling/amule.svg)](https://pkg.kali.org/pkg/amule) |
| [![Manjaro](https://repology.org/badge/version-for-repo/manjaro_stable/amule.svg)](https://repology.org/project/amule/versions) |
| [![NixOS 25.05](https://repology.org/badge/version-for-repo/nix_stable_25_05/amule.svg)](https://search.nixos.org/packages?channel=25.05&query=amule) |
| [![OpenBSD](https://repology.org/badge/version-for-repo/openbsd/amule.svg)](https://openports.pl/path/net/amule) |
| [![openSUSE Tumbleweed (Packman)](https://repology.org/badge/version-for-repo/packman_opensuse_tumbleweed/amule.svg)](http://packman.links2linux.org/package/aMule) |
| [![RPMFusion Fedora 42](https://repology.org/badge/version-for-repo/rpmfusion_fedora_42/amule.svg)](https://repology.org/project/amule/versions) |
| [![Slackware](https://repology.org/badge/version-for-repo/slackbuilds/amule.svg)](https://slackbuilds.org/result/?search=amule) |
| [![Solus](https://repology.org/badge/version-for-repo/solus/amule.svg)](https://repology.org/project/amule/versions) |
| [![Ubuntu 24.04 LTS](https://repology.org/badge/version-for-repo/ubuntu_24_04/amule.svg)](https://packages.ubuntu.com/noble/amule) |
| [![Ubuntu 25.04](https://repology.org/badge/version-for-repo/ubuntu_25_04/amule.svg)](https://packages.ubuntu.com/plucky/amule) |

---

Development Statistics:

| [![Open Issues](https://img.shields.io/github/issues/amule-project/amule)](https://github.com/amule-project/amule/issues) | [![Open Pull Requests](https://img.shields.io/github/issues-pr/amule-project/amule)](https://github.com/amule-project/amule/pulls) |
| --- | --- |
| [![Bug](https://img.shields.io/github/issues/amule-project/amule/bug)](https://github.com/amule-project/amule/issues?q=is%3Aopen+is%3Aissue+label%3Abug) | |
| [![Bug - Delayed Fix](https://img.shields.io/github/issues/amule-project/amule/bug%20-%20delayed%20fix)](https://github.com/amule-project/amule/issues?labels=bug%20-%20delayed+fix) | |
| [![Feature Request](https://img.shields.io/github/issues/amule-project/amule/feature%20request)](https://github.com/amule-project/amule/issues?labels=feature+request) | |
| [![Enhancement](https://img.shields.io/github/issues/amule-project/amule/enhancement)](https://github.com/amule-project/amule/issues?labels=enhancement) | |

## Features

* `amule` — all-in-one GUI client.
* `amuled` — headless daemon, no GUI.
* `amulegui` — remote GUI; connects to a local or remote `amuled` over the
  EC (External Connection) protocol.
* `amuleweb` — HTTP interface to a running `amuled`.
* `amulecmd` — interactive CLI for a running `amuled`.

## 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](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.

[Releases page]: https://github.com/amule-org/amule/releases/latest

### Building from source

aMule uses CMake. Quick start:

```sh
cmake -B build -DBUILD_MONOLITHIC=YES -DBUILD_REMOTEGUI=YES
cmake --build build -j"$(nproc)"
sudo cmake --install build
```

See [docs/INSTALL.md](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`](.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][network] for details.

[HighID]:  https://amule-org.github.io/docs/p2p-networks/ed2k/high-id "What is LowID and HighID?"
[network]: https://amule-org.github.io/docs/manual/configuration/network-connectivity "Network connectivity"

### 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][5] (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][bug-report] for
detailed instructions on attaching backtraces and reproducer steps.

[5]:          https://github.com/amule-org/amule/issues "aMule Issues"
[bug-report]: https://amule-org.github.io/docs/contributing/bug-report "Bug Report Instructions"

## Contributing

*Contributions are always welcome!*

See the [contributing guide][contributing] for how to get involved. In short:

* **Code** — fix a bug, implement a feature, improve performance. The preferred
  path is a [pull request][6] 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][Documentation].

[6]:            https://github.com/amule-org/amule/pulls "aMule Pull Requests"
[contributing]: https://amule-org.github.io/docs/contributing "Contributing to aMule"
