La red eDonkey (también conocida como red eDonkey2000 o eD2k) es una red de intercambio de archivos peer-to-peer descentralizada, basada principalmente en servidores, creada en 2000 por los desarrolladores estadounidenses Jed McCaleb y Sam Yagan.[1][2][3] Está diseñada para compartir archivos de gran tamaño entre usuarios y ofrecer los archivos durante largos periodos de tiempo. Como la mayoría de las redes de intercambio, está descentralizada, ya que no hay un nodo central en la red, además, los archivos no se almacenan en un servidor central, sino que se intercambian directamente entre los usuarios según el principio peer-to-peer.
Existen dos familias de software de servidor para la red eD2k, ambas son de código cerrado y uso gratuito. Por un lado, el servidor original de MetaMachine, escrito en C++, de código cerrado y propietario, ya no se mantiene. El servidor eserver, escrito en C, también de código cerrado y propietario, aunque está disponible gratuitamente y para varios sistemas operativos y arquitecturas informáticas. La familia eserver está actualmente en desarrollo y soporte activo, y casi todos los servidores eD2k a partir de 2008 ejecutan este software de servidor.
Hay muchos programas que actúan como clientes de la red. Los más notables son eDonkey2000, el cliente original de MetaMachine, de código cerrado pero gratuito, que ya no se mantiene pero que fue muy popular en su día; eMule, un programa de código abierto para Windows escrito en Visual C++ y licenciado bajo la GNU GPL; aMule, un programa de código abierto multiplataforma con licencia GNU GPL.
El protocolo eD2k original ha sido ampliado en versiones posteriores de los programas eserver y eMule, que generalmente trabajan juntos para decidir qué nuevas características debe soportar el protocolo eD2k. Sin embargo, el protocolo eD2k no está formalmente documentado (especialmente en su estado extendido actual), y en la práctica, se considera que el protocolo eD2k es lo que eMule y eserver hacen juntos cuando se ejecutan, y también cómo los clientes eMule se comunican entre ellos. Como eMule es de código abierto, su código está disponible libremente para la revisión por pares del funcionamiento del protocolo. Algunos ejemplos de extensiones del protocolo eD2k son el "intercambio de pares entre clientes", la "ofuscación del protocolo" y la compatibilidad con archivos de más de 4 gigabytes. Los demás clientes de la red eD2k, con el tiempo, suelen adoptar estas extensiones de protocolo.
Los programas cliente se conectan a la red eDonkey para compartir archivos.[4] Los servidores eDonkey actúan como centros de comunicación para los clientes, permitiendo a los usuarios localizar archivos dentro de la red. Los clientes y servidores están disponibles para Windows, Mac OS X, Linux y otros sistemas operativos tipo Unix. Cualquier usuario puede añadir un servidor a la red al ejecutar un programa servidor eDonkey en una máquina conectada a Internet. Como el número de servidores y sus direcciones cambian con frecuencia, los programas cliente suelen actualizar la "lista de servidores" frecuentemente.