L’implémentation principale du client I2P utilise Java. Si vous ne pouvez pas ou préférez ne pas utiliser Java sur un système particulier, il existe des implémentations alternatives de client I2P développées et maintenues par les membres de la communauté. Ces programmes fournissent les mêmes fonctionnalités de base en utilisant différents langages de programmation ou approches.
Tableau de comparaison
| Client | Language | Maturity | Actively Maintained | Suitable For | Notes |
|---|---|---|---|---|---|
| Java I2P | Java | Stable | ✅ Yes (official) | General users | Standard full router; includes console, plugins, and tools |
| i2pd | C++ | Stable | ✅ Yes | Low-resource systems, servers | Lightweight, fully compatible with Java I2P, includes web console |
| Go-I2P | Go | Experimental | ⚙️ In development | Developers, testing | Early-stage Go implementation; not yet production ready |
| Emissary | Rust | Experimental | ⚙️ In development | Developers, embedded use | Rust I2P implementation; embeddable router with eepsite, torrent, IRC and email support |
| I2P+ | Java | Stable (fork) | ✅ Yes | Advanced users | Enhanced Java I2P fork with UI and performance improvements |
i2pd (C++)
Site web : https://i2pd.website
Description : i2pd (le I2P Daemon) est un client I2P complet implémenté en C++. Il est stable pour un usage en production depuis de nombreuses années (depuis environ 2016) et est activement maintenu par la communauté. i2pd implémente entièrement les protocoles réseau et APIs I2P, le rendant complètement compatible avec le réseau Java I2P. Ce router C++ est souvent utilisé comme alternative légère sur les systèmes où l’environnement d’exécution Java n’est pas disponible ou souhaité. i2pd inclut une console web intégrée pour la configuration et la surveillance. Il est multiplateforme et disponible dans de nombreux formats de packaging — il existe même une version Android d’i2pd disponible (par exemple, via F-Droid).
Go-I2P (Go)
Dépôt : https://github.com/go-i2p/go-i2p
Description : Go-I2P est un client I2P écrit dans le langage de programmation Go. Il s’agit d’une implémentation indépendante du router I2P, visant à exploiter l’efficacité et la portabilité de Go. Le projet est en développement actif, mais il est encore à un stade précoce et n’est pas encore complet en termes de fonctionnalités. En 2025, Go-I2P est considéré comme expérimental — il fait l’objet d’un travail actif de la part des développeurs de la communauté, mais il n’est pas recommandé pour un usage en production tant qu’il n’aura pas davantage mûri. L’objectif de Go-I2P est de fournir un router I2P moderne et léger avec une compatibilité complète avec le réseau I2P une fois le développement terminé.
Emissary (Rust)
Site web : https://eepnet.github.io/emissary/
Description : Emissary est une implémentation en Rust de la pile de protocoles I2P, conçue pour fonctionner comme un router I2P intégrable. Il peut être intégré dans d’autres applications ou exécuté de manière autonome. Emissary prend en charge l’hébergement d’eepsite, les torrents, les services IRC et email. Le projet inclut une documentation complète couvrant la configuration de démarrage rapide, l’intégration pour les développeurs, et la configuration détaillée. En tant que projet expérimental, il est en développement actif et n’est pas encore recommandé pour un usage en production.
I2P+ (fork Java)
Site web : https://i2pplus.github.io
Description : I2P+ est un fork maintenu par la communauté du client Java I2P standard. Il ne s’agit pas d’une réimplémentation dans un nouveau langage, mais plutôt d’une version améliorée du router Java avec des fonctionnalités et des optimisations supplémentaires. I2P+ se concentre sur l’amélioration de l’expérience utilisateur et de meilleures performances tout en restant entièrement compatible avec le réseau I2P officiel. Il introduit une interface de console web rafraîchie, des options de configuration plus conviviales, et diverses optimisations (par exemple, de meilleures performances de torrent et une meilleure gestion des pairs du réseau, en particulier pour les routers derrière des pare-feu). I2P+ nécessite un environnement Java tout comme le logiciel I2P officiel, ce n’est donc pas une solution pour les environnements non-Java. Cependant, pour les utilisateurs qui ont Java et veulent une version alternative avec des capacités supplémentaires, I2P+ offre une option attrayante. Ce fork est maintenu à jour avec les versions I2P en amont (avec sa numérotation de version ajoutant un “+”) et peut être obtenu depuis le site web du projet.