eMule is a popular, open source P2P (peer-to-peer) file sharing client for Microsoft Windows, based on the eDonkey2000 protocol. Started in May 2002 as an alternative to eDonkey2000, eMule now connects to both the eDonkey network and the Kad network. 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.
eMule is coded in Microsoft Visual C++ using the Microsoft Foundation Classes. As of July 2002 eMule has been free software, released under the GNU General Public License; its popularity has led to eMule's codebase being used as the basis of a Linux-specific client, xMule, and a multiplatform client, aMule, along with the release of many eMule mods (modifications of the original eMule) on the Internet.
eMule is one of the biggest and most reliable P2P file sharing clients around the world. Many developers contribute to the project, so the network gets more and more efficient with every new version.
A list of a few features available:
• Clients use several networks to create one reliable network. (ED2K, Source Exchange, Kad). Kad is now in an open testphase, eMule v0.42 can be enabled to use Kad
• eMule's Queue and Credit system helps to ensure that everyone will get the file he wants by promoting those that upload back to the network.
• eMule is completely free. eMule is also completely free of any Adware, Spyware, and ect. We do this for fun and knowledge, not for money.
• Each file checked for corruptions while downloading to ensure an error free file.
• The eMules Intelligent Corruption Control helps to speed up the correction of corrupted parts.
• Auto priorities and Source management allows you to start many downloads without having to monitor them.
• The Preview function allows you to look at your Videos and Archives before they are completed. For video previewing, we recommend the Video Lan Client.
• The eMule features webservices and a webserver that allows you to have quick access to and from the internet.
• You can create categories for your download to organize them.
• To find the file you want, eMule offers a wide range of search possibilities which include: Servers (Local, and Global), web based (Jigle, and Filedonkey), and Kad (Still in Alpha).
• eMule also allows you to use very complex Boolean searches that make the searches much more flexible.
• With the messaging and friend system, you can send messages to other Clients and add them as friends. In your friend list, you can always see if a friend is online.
• With the build in IRC client, you can chat with other downloaders and chatters around the globe.
Changes in eMule 0.49b, (Jul, 31. 2008):
- Fixed some rare possible crashes
- Added deleting of single entries from AutoComplete drop down lists by pressing the DEL key.
- Added a new search method option "Automatic" which lets eMule choose which search method to use. eMule will select either Servers (Local) or Kad, based on which network we are connected to and some other indicators if connected to both networks.
- Removed a general exception handler for the Beta version. This means eMule crashes instead of ignoring unexpected errors, which however is needed so we actually can find such bugs (if any exist) in the crashdumps.
- Implemented a special nodes.dat version, which is more suited for mass distribution without causing significant additional traffic for the included nodes. This hopefully allows us to add a nodes.dat to the installer, so that new user can connect to Kad without having to connect to servers or downloading a nodes.dat themself
- Implemented an alternate method to estimate the total user count in the Kad network, which is not based on our local routing table. Its experimental and only shown in the network dialog (double click the world icon in the status bar)
- Adjusted the displaying of the user count by not showing numbers for a network we are not connected to
- Fixed a minor bug with kad obfuscation when answering unbofuscated hello-requests
- Made sure that only one challenge to verify a contact is sent at a time to the same IP
- Added MiniUPnPLib as additional UPnP implementation, the current Windows service based implementation is used as fallback. This will hopefully make eMule's UPnP compatible to most available routers. [miniupnplib by Thomas Bernard, Test & Suggestion: leuk_he]
- A specific UPnP implementation can be disabled by adding "DisableMiniUPNPLibImpl=1" or "DisableWinServImpl=1" into the "UPnP" section of the preferences.ini
- When reading a nodes.dat without any verified contacts (possible an old file version), eMule will assume all contacts to be verified to avoid slowing down the connecting process
- Project files for VS2005 and VS2008 have been added, however the official eMule is still developed and compiled on VS2003
- Several changes were made to Kad in order to defy routing attacks researched by University of Minnesota guys [Peng Wang, James Tyra, Eric Chan-Tin, Tyson Malchow, Denis Foo Kune, Nicholas Hopper, Yongdae Kim], in particular:
- Kad contacts will only be able to update themself in others routing tables if they provide the proper key (supported by 0.49a+ nodes) in order to make it impossible to hijack them
- Kad uses now a three-way-handshake (or for older version a similar check) for new contacts, making sure they do not use a spoofed IP
- Unverified contacts are not used for routing tasks and a marked with a special icon in the GUI
- Fixed: Shared Files window splitter did not properly save/restore position.
- Did first small step in dropping Kad1 support by not probing unknown Kad contacts for Kad1 anymore to save overhead. Kad1 clients will nevertheless still be work for now.
- Fixed a bug which let Kad sometimes assume a Kad2 contact to be Kad1 after probing for both versions
- Fixed: Memory leak in context menus.
- Added: Vista styles for context menus.
- Fixed: Pressing ESC in Shared Files window filter destroyed the entire window.
- Added additional sanitize checks to make sure eMule never writes downloaded data into an already completed part
- Optimized the Kad packettracking code to only tack packets which we check later, to save ressources
- Fixed 100% CPU usage bug with tooltips in Statistics Graphs.
- Added: Tooltip in Statistics Graphs show the Y-value.
- Kad no longer tries to add UDP firewalled (and therefore mostly unreachable) nodes into its routing table, reducing overhead and increasing reliability [Idea: Netfinity]
- Kad tries to determine the overall ration of firewalled clients in the Kad network and shows them in the statistics tree. This will only work if you are not firewalled yourself and know enough 0.49b+ nodes
- When calculating the total user count, Kad now uses (if available) the real number of firewalled clients for the calculation instead a fixed value. This will take more effect when 0.49+ nodes become common
- he "Handle eD2k-Links" button now also works properly with Vista's UAC enabled
- Added: Unshare context menu entries for directories within the virtual "Shared Directories" folder.
- Added: Vista themes for all owner drawn tab controls.
- Added: Vista themes for category selector controls.
- Fixed main toolbar redrawing problems under Vista.
- Reworked connecting code, fixing some minor and some major bugs, including a possible loop in unreachable DirectCallback sources
- Added new close icons for closeable tab controls.
- Kad now ignores multiple IDs pointing to one IP in routing request answers
- Fixed: Tab controls were not sized correctly on certain text contents.
- Fixed: Category tabs in Transfers window did not show correct default text color.
- Fixed: Category properties dialog did not always show the correct (default) category color.
- Added: Hot tracking effects for Vista themes for all (owner drawn) tab controls.
- Fixed: Tooltips did not show correctly with Vista Aero theme.
Download link