App gratuita y de código abierto para enviar archivos y mensajes a dispositivos cercanos por la red local, sin internet ni servidores de terceros.
n0-computer/iroh
Biblioteca Rust para conectar aplicaciones mediante claves públicas, con transporte QUIC, hole punching y servidores relay como alternativa.
- Estrellas
- 12,779
- Forks
- 778
- Issues abiertos
- 183
- Último commit
- hace 8 horas
¿Qué es?
Iroh permite que las aplicaciones se conecten a un peer mediante su clave pública en lugar de una dirección IP. La biblioteca encuentra y mantiene la mejor ruta disponible hacia ese peer: primero intenta establecer una conexión directa mediante hole punching y, si falla, recurre a servidores relay públicos.
Las conexiones se basan en QUIC a través de la biblioteca noq, que ofrece cifrado autenticado, streams concurrentes con prioridades y transporte de datagramas, y evita el bloqueo de cabecera. Los desarrolladores pueden crear sus propios protocolos sobre estas conexiones.
El repositorio también incluye protocolos listos para usar: iroh-blobs, para transferencias direccionadas por contenido con BLAKE3; iroh-gossip, para redes overlay de publicación-suscripción; e iroh-docs, para un almacén de clave-valor con consistencia eventual. Los bindings para otros lenguajes se mantienen por separado en iroh-ffi.
Funciones clave
- 01Conectar con peers mediante su clave pública en lugar de su dirección IP
- 02Conexiones directas mediante hole punching, con servidores relay como alternativa
- 03Conexiones QUIC con cifrado y streams multiplexados
- 04Protocolos listos para transferir blobs, intercambiar mensajes gossip y gestionar documentos de clave-valor
- 05Implementación de un servidor relay público incluida en el workspace
Casos de uso
- Aplicaciones peer-to-peer que necesitan conectar dispositivos detrás de NAT
- Sincronizar archivos entre dispositivos sin un servidor central
- Crear sistemas de mensajería en tiempo real o redes overlay de publicación-suscripción entre nodos
Inicio rápido
- 1
Instala la biblioteca de Rust con cargo
cargo add iroh - 2
Consulta el ejemplo echo para ver el código completo
Antes de usarlo
- Es principalmente una biblioteca de Rust; para otros lenguajes se utilizan los bindings del proyecto independiente iroh-ffi.
Temas
Preguntas frecuentes
- ¿Qué es iroh?
- Biblioteca Rust para conectar aplicaciones mediante claves públicas, con transporte QUIC, hole punching y servidores relay como alternativa. Iroh permite que las aplicaciones se conecten a un peer mediante su clave pública en lugar de una dirección IP. La biblioteca encuentra y mantiene la mejor ruta disponible hacia ese peer: primero intenta establecer una conexión directa mediante hole punching y, si falla, recurre a servidores relay públicos.
- ¿iroh es gratuito? ¿Qué licencia tiene?
- iroh es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿iroh sigue mantenido?
- Mantenimiento activo. El último commit de iroh fue el 19 oct 2026.
- ¿Para qué puedo usar iroh?
- Aplicaciones peer-to-peer que necesitan conectar dispositivos detrás de NAT Sincronizar archivos entre dispositivos sin un servidor central Crear sistemas de mensajería en tiempo real o redes overlay de publicación-suscripción entre nodos
- ¿Cómo se instala iroh?
- Instala la biblioteca de Rust con cargo: cargo add iroh Consulta el ejemplo echo para ver el código completo
- ¿Dónde consigo iroh?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/n0-computer/iroh
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una CLI minimalista en Rust que expone un puerto TCP local a través de un servidor remoto para que los servicios de localhost sean accesibles desde Internet.
CLI similar a netcat y biblioteca de Go para conectar dos máquinas mediante el plano de datos WireGuard de Tailscale, sin cuenta ni plano de control de Tailscale.
Herramienta de diagnóstico de redes para terminal, escrita en Rust, que muestra en tiempo real el tráfico, las conexiones y los paquetes, y diagnostica problemas con un solo comando.
Cliente GTK para Linux del protocolo Quick Share de Google, para enviar y recibir archivos de forma inalámbrica con dispositivos Android.
Una biblioteca JavaScript para crear aplicaciones web multijugador en las que los navegadores se conectan entre sí mediante WebRTC, sin tener que ejecutar un servidor propio.