Sans crier gare, aMule a dévoilé sa version 3.0.0, surnommée “La version qui redonne vie”. Un titre qui ne semble pas exagéré. Il s’agit de la première mise à jour majeure du client P2P depuis aMule 2.3.3, sorti en février 2021. Cette renaissance s’accompagne d’un changement de cap significatif : la mise à jour ne se limite pas à corriger des bugs mineurs, mais elle réécrit des parties essentielles liées à la performance, modernise le système de compilation, met à jour les dépendances, améliore la distribution des binaires et nettoie une bonne partie du code hérité.
La grande nouveauté réside dans les performances. D’après les tests publiés par l’équipe projet, aMule 3.0.0 affiche des vitesses de téléchargement P2P allant de 107x à 381x par rapport à aMule 2.3.3 dans un environnement local contrôlé. Sur macOS avec Apple Silicon, on observe une amélioration de 0,35 MB/s à 135 MB/s; sur Linux ARM, de 0,34 MB/s à 117 MB/s; et sur Windows ARM, de 0,36 MB/s à 39 MB/s. Bien que ces chiffres soient impressionnants, il convient de rappeler que les tests ont été réalisés durant 90 secondes, avec un seul pair en LAN téléchargeant un fichier de 30 Go, ce qui ne doit pas être interprété comme une garantie que toutes les téléchargements en eD2k/Kad vont automatiquement bénéficier d’une telle accélération.
aMule 3.0.0 : héros ou vilain ?
La source de cette amélioration drastique de la vitesse trouve son origine dans une restructuration poussée de la gestion des transferts. aMule 3.0.0 a déplacé la lecture et l’écriture disque en dehors du fil principal, a corrigé des anomalies dans ASIO/EPOLLET et a remplacé les anciens limitateurs de bande passante par des contrôleurs de type « token bucket », bien plus adaptés pour appliquer de véritables limites de téléchargement et d’upload. D’ailleurs, l’équipe projet admet que les anciens réglages MaxUpload et MaxDownload ne fonctionnaient pas comme prévu par les utilisateurs. Par exemple, MaxUpload=0 ne signifiait pas un upload illimité, tandis que MaxDownload agissait plutôt comme un régulateur, et non comme une limite stricte de bytes par seconde.
La vitesse d’upload a également été considérablement améliorée. Le projet a porté depuis eMule le système CUploadDiskIOThread, qui extrait du fil principal tant les lectures de disque que la construction des paquets ed2k. Cette amélioration a le plus grand impact sur les performances, surtout lorsque le client se comporte comme seed. En comparant directement à eMule 0.70b sur Windows et le même matériel UTM, aMule 3.0.0 atteint 106 MB/s en upload contre 22 MB/s pour eMule, soit un facteur de 4,8 fois supérieur. En ce qui concerne le téléchargement, aMule 3.0.0 s’élève à 39 MB/s face à 20 MB/s pour eMule, soit environ 1,9 fois plus.
Cela est crucial car les utilisateurs avaient remarqué un faible rendement d’aMule, en 2021 des rapports indiquaient que aMule 2.3.3 téléchargeait beaucoup plus lentement que eMule avec les mêmes paramètres. Lorsque eMule atteignait jusqu’à 4,5 MB/s, aMule stagnait à moins de 1 MB/s. La version 3.0.0 s’attaque donc à cette problématique historique, même si les chiffres avancés proviennent de tests internes.
Autres améliorations apportées après cinq ans de dormance

Une autre avancée notable est le traitement des bibliothèques très importantes. aMule 3.0.0 apporte des optimisations pour les nœuds contenant plus de 100 000 fichiers partagés. Cela devrait éviter que la GUI, aMuleGUI, WebUI ou amuleweb ne se bloque pendant plusieurs minutes lors de la gestion de listes énormes de fichiers partagés.
aMule 3.0.0 abandonne autotools pour adopter CMake comme système de compilation unique, nécessitant CMake 3.10 et wxWidgets 3.2.0 et plus récents, tout en offrant des binaires natifs pour Windows, Linux et macOS. Des versions AppImage et Flatpak sont disponibles pour x86_64 et aarch64, ainsi qu’un .dmg Universal2 pour macOS qui prend en charge Intel et Apple Silicon, sans oublier un ZIP portable et un installateur NSIS pour Windows en x64 et ARM64.
Les autres améliorations incluent des recherches parallèles pour Kad avec extension de bord, un HTTPS refondu grâce à wxWebRequest, et le GeoIP remplacé par MaxMindDB. Le système de dossiers partagés bénéficie également d’un auto-rescan grâce à wxFileSystemWatcher. En termes de sécurité et de stabilité, le changelog mentionne un renforcement du parser de paquets, correction de débordements de tampon, ajustements de mémoire non initialisée, et diverses améliorations en amuleweb, notamment protection XSS sur le paramètre de tri, génération de tokens de session via CSPRNG et cookies configurés en HttpOnly et SameSite=Strict. Des fuites de mémoire, des arrêts imprévus et des problèmes spécifiques à macOS, Windows, musl/Alpine et GTK ont aussi été corrigés.
En revanche, sur macOS, le fichier .dmg n’est pas encore signé ni notarié, ce qui provoque des avertissements de Gatekeeper au premier lancement. La publication sur Flathub est encore attendue et pour l’instant il faut installer le fichier .flatpak directement. AppImage n’est pas encore intégré dans le catalogue d’AppImageLauncher. Enfin, la distribution sur Linux varie : Arch Linux propose déjà aMule 1:3.0.0-1 dans le dépôt Extra, alors que Debian maintient encore la version 2.3.3-4.1 comme version principale dans stable/testing/unstable.
Points à retenir
- aMule 3.0.0 représente une mise à jour significative après deux ans d’absence.
- Des améliorations de performances notables avec des vitesses de téléchargement qui peuvent atteindre jusqu’à 381x.
- Une restructuration de la gestion des transferts pour une meilleure efficacité.
- Des optimisations pour les utilisateurs avec de grandes bibliothèques de fichiers.
- Adoption de nouvelles technologies de compilation et distribution de binaires natifs.
Cette mise à jour d’aMule soulève des questions sur l’évolution des clients P2P à l’heure où les besoins de bande passante augmentent. Pourra-t-elle répondre aux attentes des utilisateurs face à une concurrence croissante ? J’invite chacun à explorer cette nouvelle version et à partager son expérience, car il est essentiel de demeurer critiques et curieux dans un monde en constante mutation.