La implementación principal del cliente I2P utiliza Java. Si no puedes o prefieres no usar Java en un sistema particular, existen implementaciones alternativas del cliente I2P desarrolladas y mantenidas por miembros de la comunidad. Estos programas proporcionan la misma funcionalidad central usando diferentes lenguajes de programación o enfoques.
Tabla de Comparación
| 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++)
Sitio web: https://i2pd.website
Descripción: i2pd (el I2P Daemon) es un cliente I2P completo implementado en C++. Ha sido estable para uso en producción durante muchos años (desde alrededor de 2016) y es mantenido activamente por la comunidad. i2pd implementa completamente los protocolos de red y APIs de I2P, haciéndolo totalmente compatible con la red Java I2P. Este router de C++ se utiliza a menudo como una alternativa ligera en sistemas donde el runtime de Java no está disponible o no se desea. i2pd incluye una consola web integrada para configuración y monitoreo. Es multiplataforma y está disponible en muchos formatos de empaquetado — incluso existe una versión de Android de i2pd disponible (por ejemplo, a través de F-Droid).
Go-I2P (Go)
Repositorio: https://github.com/go-i2p/go-i2p
Descripción: Go-I2P es un cliente I2P escrito en el lenguaje de programación Go. Es una implementación independiente del router I2P, con el objetivo de aprovechar la eficiencia y portabilidad de Go. El proyecto está bajo desarrollo activo, pero aún se encuentra en una etapa temprana y no está completo en características. A partir de 2025, Go-I2P se considera experimental — está siendo trabajado activamente por desarrolladores de la comunidad, pero no se recomienda para uso en producción hasta que madure más. El objetivo de Go-I2P es proporcionar un router I2P moderno y liviano con compatibilidad completa con la red I2P una vez que se complete el desarrollo.
Emissary (Rust)
Sitio web: https://eepnet.github.io/emissary/
Descripción: Emissary es una implementación en Rust de la pila de protocolos I2P, diseñada para funcionar como un router I2P embebible. Puede integrarse en otras aplicaciones o ejecutarse de forma independiente. Emissary admite hosting de eepsites, torrents, servicios de IRC y correo electrónico. El proyecto incluye documentación extensa que cubre configuración de inicio rápido, embedding para desarrolladores y configuración detallada. Como proyecto experimental, está en desarrollo activo y aún no se recomienda para uso en producción.
I2P+ (fork de Java)
Sitio web: https://i2pplus.github.io
Descripción: I2P+ es un fork mantenido por la comunidad del cliente Java I2P estándar. No es una reimplementación en un nuevo lenguaje, sino más bien una versión mejorada del router Java con características adicionales y optimizaciones. I2P+ se enfoca en ofrecer una experiencia de usuario mejorada y mejor rendimiento mientras se mantiene completamente compatible con la red oficial I2P. Introduce una interfaz de consola web renovada, opciones de configuración más amigables para el usuario, y varias optimizaciones (por ejemplo, rendimiento mejorado de torrent y mejor manejo de peers de red, especialmente para routers detrás de firewalls). I2P+ requiere un entorno Java al igual que el software oficial I2P, por lo que no es una solución para entornos sin Java. Sin embargo, para usuarios que sí tienen Java y quieren una versión alternativa con capacidades extra, I2P+ proporciona una opción atractiva. Este fork se mantiene actualizado con las versiones upstream de I2P (con su numeración de versión agregando un “+”) y se puede obtener desde el sitio web del proyecto.