eMule is a free, open-source file-sharing application for Windows. It finds files on the ED2K and Kad peer-to-peer networks and downloads their data from other users. The same application also shares selected local files and completed parts of ongoing downloads.
Finding files with eMule
The two networks give eMule different ways to locate files and the people sharing them. ED2K servers keep indexes of connected users’ files; the files themselves remain on those users’ computers. Kad distributes those indexes among participating clients instead of using dedicated servers.
Search can use the connected ED2K server, query the servers in the server list, or search Kad. The network choice affects discovery. After finding a source, eMule contacts that peer directly to request the file’s data.
Search filters and file hashes
Keywords can be narrowed by file type, extension, size range and source availability. Archive, audio, image and video filters group related extensions. These filters select search results; they do not change or convert the files.
Server searches support AND, OR and NOT expressions, with parentheses for grouping. This lets a query require certain words while excluding others. Kad has more restrictive syntax: its first keyword needs at least three letters, and subsequent operators are limited to AND.
eMule identifies a file by its hash rather than its name. Copies with different names can therefore supply the same download. Search results group those names under the matching hash, while the availability column indicates how many sources the search found.
Downloading parts from other users
A selected search result or ED2K file link becomes an entry in the Transfers window. Expanding that entry reveals the sources found for it and their status. Download priority, progress and transfer controls are available alongside the file.
Each source maintains a waiting queue. eMule requests a place in that queue and receives data when the peer assigns an upload slot. Different peers can supply different parts, so the application does not need one user to provide the whole transfer.
Source exchange extends that search by asking other eMule clients for peers holding the parts still missing. A transfer remains unfinished when no reachable source can supply those parts. Finding a file in search results also does not mean a source can start uploading immediately.
Credits between peers
Uploading can improve a user’s position in another client’s waiting queue. The credit modifier depends on the data exchanged between those two clients, alongside the queue’s waiting-time calculation. Upload priority also helps determine which shared files receive upload slots.
Credits belong to the relationship between specific peers. Uploading to one client does not create a balance that can be spent throughout the network. The peer that owes the credit stores it, and clients without credit-system support do not grant it.
Checking and repairing downloaded data
Completed parts are checked against their expected hashes before eMule offers them to other users. When a part fails that check, Intelligent Corruption Handling replaces portions of its data and checks the part again.
Advanced Intelligent Corruption Handling uses finer block hashes to identify the damaged data more precisely. With a trusted root hash and recovery information from a suitable peer, it retains the valid blocks and downloads the corrupted ones again. This recovery depends on that verification information being available.
Sharing files and organising transfers
The Shared Files window shows finished downloads, shared parts of unfinished files and additional folders selected by the user. Folders can be shared or removed from sharing through the directory tree. Every file in a shared folder becomes available to other peers.
Per-file controls set upload priority and attach comments about the content. Request and upload statistics show activity for the selected file. A text filter narrows the visible list without removing any of its files from sharing.
eMule collections put links to related files into one index file. Someone receiving the collection can locate that group without searching for each item separately. The collection contains the links, rather than packaging the files themselves.
Categories and destination folders
Download categories group transfers and can assign a destination folder, colour and priority for new entries. Filename patterns can place new downloads in a category automatically. Completed files then move to its chosen incoming folder, or the default folder when none is set.
Pause, resume, stop and priority commands can apply to a category’s files together. A category can also resume the next paused download after another finishes. Removing the category leaves its files intact.
Controlling eMule through a browser
The web interface provides remote access to the running application, including its transfers and preferences. Changes made there affect the same eMule instance on the host computer. The interface uses the configured password for access, and the host must remain running and reachable.





