# EMule

Em computação, eMule é um aplicativo de compartilhamento de arquivos (ou ficheiros) através de cliente/servidor que trabalha com as redes eDonkey2000 e Kad oferecendo mais funções do que o cliente eDonkey padrão. O eMule é um software livre lançado sob a GNU General Public License. Possui versões para Microsoft Windows.

## História

O projeto eMule começou em 13 de maio de 2002 por Hendrik Breitkreuz (também conhecido como "Merkur"), que estava insatisfeito com o cliente eDonkey2000 original. Com o tempo, mais desenvolvedores se juntaram ao projeto. O primeiro código lançado foi a versão 0.02 e publicado no SourceForge em 6 de Julho de 2002.
A primeira versão operacional lançada ao público foi a 0.05a em 4 de agosto de 2002. O sistema de créditos foi implementado pela primeira vez na versão 0.19a. O site foi iniciado em 8 de dezembro de 2003.
Desde então o eMule já foi baixado mais de 520 milhões de vezes (abril de 2010) no site SourceForge, sendo em números absoluto, o programa mais baixado desse site com o dobro do segundo colocado.

## Recursos

Os diferenciais do eMule são a troca de links entre os clientes, rápida recuperação de downloads corrompidos e o uso de um sistema de créditos para premiar os usuários que fazem mais uploads.
Além disso, o eMule transmite os dados de forma compactada (com Zlib) para poupar largura de banda. Outra característica do eMule é a habilidade de aceitar links "ed2k" (ed2k://) de um navegador e começar a baixar o(s) arquivo(s) a que o link se refere. Esses links garantem que o arquivo sendo baixado é de fato o que ele diz ser e que não contem vírus ou spywares. Recentemente, muitos dos sites que provêem esses links tem sido fechados pelas autoridades devido à questionável legalidade dos links providos.
Versões duplicadas do mesmo arquivo são identificadas através do uso do algoritmo SHA1 que calcula todos os bytes do arquivo e compara com o resultado do cálculo do arquivo original, se os dois resultados forem iguais, o arquivo está perfeito.
Nas versões mais recentes (v0.47c e posteriores), o eMule tem suas próprias implementações da rede, a Kademlia, que não utiliza servidores centrais, ao contrário da rede eDonkey2000. Na Kademlia que cada usuário é um "nó" na rede, como tal, esta política (semelhante à da Internet) é bastante eficiente, pois a falha de um nó não implica a falha de toda a rede. Foram também adicionadas às novas versões a "Busca Unicode" (que permite achar arquivos com caracteres especiais) e a habilidade (não suportada no Kademlia) de verificar a busca no servidor, que arquivos tem fontes completas (e podem por conseqüência serem completamente baixados).
Grande parte dos usuários de eMule baixam arquivos maiores que 100MB (CDs de áudio completos ou filmes) e isso cria grandes filas de espera de até 5000 usuários. Tais filas tornam o eMule mais difícil de usar para a troca de pequenos arquivos (como músicas em MP3) e grandes arquivos (como CDs completos ou filmes) do mesmo usuário. Mas isso não significa que ele seja totalmente ineficiente para baixar pequenos arquivos, apenas demoram um pouco mais para começar. Entretanto o grau de confiabilidade é idêntico aos demais programas P2P, sendo que a taxa de sucesso no término de arquivos, tanto grandes, quanto pequenos é muito alta, sendo a maioria dos (raros) arquivos corrompidos que chegam via download, já eram corrompidos ANTES de serem compartilhados.
A característica mais importante do eMule é que ele força o usuário a compartilhar arquivos, por dois métodos:
* Arquivos compartilhados com mais de 10 MB são divididos e baixados em partes, então alguém baixando o arquivo, compartilha as partes que dele que já baixou antes mesmo de completar o download. O usuário que está recebendo é, dessa forma, obrigado a compartilhar até que o download termine.
* Se um usuário escolhe limitar a sua taxa de upload, o eMule automaticamente diminui a sua taxa de download, evitando os tão famosos leechers.
Apesar de existirem muitas modificações do eMule, é muito difícil encontrar uma que não imponha a segunda característica, que é parte oficial da política do eMule.
Devido ao eMule ser um programa open-source muito popular$^[$, centenas de mods dele (modificações do eMule original) tem aparecido na Internet.
As versões para Linux do eMule, xMule e aMule, são baseadas em seu código aberto e são muito parecidas com a versão para windows.