Welcome to njMule
njMule, for Next generation Java Mule, is a modern, open-source client for the eD2K and Kad 2 file-sharing networks. It speaks the same protocols as eMule, so it works with the existing eMule network: it connects to the same servers and Kad nodes, searches, downloads and uploads with eMule and the other compatible clients, and can take an existing eMule profile over.
njMule is an independent project, licensed under the GNU General Public License, version 3 or later. It is not affiliated with or endorsed by the eMule project.
One engine, four ways to use it
Everything njMule does happens in one engine, which knows nothing of windows. Around it:
- the headless engine and its command line,
njmule, for a server, a NAS or a script; - the remote-control API, in JSON, through which every window reaches the engine;
- the desktop app, for Windows, macOS and Linux, with themes, 36 languages and keyboard shortcuts: a window that starts the engine and shows the interface;
- the web interface, the same interface in a browser, behind a password.
The desktop app can also show an njMule running on another computer, and the command line can drive one, through the same API.
njMule is shipped as native executables, built with GraalVM: you install it like any other program, and no Java is needed. There are installers and archives for Windows, macOS and Linux, a Docker image and a Synology package.
Who it is for
- eMule users who want a client that looks and works like today's apps, on Windows, macOS or Linux, and keeps their servers, contacts, credits and downloads.
- People who run a server or a NAS and want a client that runs without a window, starts with the system and is used from a browser.
- Those who automate: the command line and the API let scripts search, add downloads and watch what happens.
Project status
This guide describes njMule 0.3.1. The first release, 0.1.0, came out on 26 October 2026;
until 1.0.0 the versions are numbered 0.y.z, and options or behaviours may still change between
them, as the changelog says for each one. Packages for every platform and
the Docker image are on the GitHub releases page, from
which the Getting started pages link the files; you can also
build njMule from source.
Use it legally
njMule is a tool for sharing files. Share and download only files you have the right to: your own work, free software, works in the public domain or under a license that allows sharing. In many countries, sharing or downloading copyrighted works without permission is against the law. You are responsible for what you share and download; the njMule project hosts no files and has no control over what others share.
How this guide is organised
- Features: a tour of everything njMule does.
- Getting started: the requirements; installing on Windows, macOS, Linux, with Docker or on Synology; verifying a download; the first start; importing an eMule profile; and your first download.
- Desktop app: every screen of the desktop app, from the transfers and the search to the keyboard shortcuts.
- Options: every option, page by page.
- Web interface: using njMule from a browser, its security, reverse proxies and the guest access.
- Headless and servers: the command line, the remote-control API, the Windows service and the Linux service.
- Networking: ports, servers and Kad, IPv6, connections through routers, obfuscation, proxies, network interfaces and the IP filter.
- Your data: where njMule keeps its files, the portable mode, backups, logs, privacy and removing your profile.
- Updates, Uninstall, Troubleshooting, FAQ and the Glossary of eD2K and Kad terms.
- About: the license, the changelog and how to report a security issue.
The developer guide explains how to build njMule, test it, contribute and use the API from your own programs.
Getting help
Look first in Troubleshooting and the FAQ. For a bug or a question they do not answer, open an issue on GitHub.