eMule is a free software peer-to-peer file sharing application that works with both the eDonkey network and the Kad network. eMule's codebase forms the basis for a Linux-specific client, xMule, and a multiplatform client, aMule.
The distinguishing features of eMule are the direct exchange of sources between client nodes, fast recovery of corrupted downloads, and the use of a credit system to reward frequent uploaders. Furthermore, eMule transmits data in Zlib-compressed form to save bandwidth. Another feature of eMule, or any eDonkey network client in general, is the ability to accept 'ed2k: URL scheme' (eDonkey links) from a web browser and begin downloading the file(s) to which these links refer. These links ensure that the file being downloaded shares the same hash, and therefore is not a "fake". The matching of file sources is verified through the use of the MD4 algorithm.
eMule is coded in Visual C++ .NET using the Microsoft Foundation Classes and because it is a popular open-source program, hundreds of eMule mods (modifications of the original eMule) have appeared on the Internet.