App gratuito e de código aberto para enviar arquivos e mensagens a dispositivos próximos pela rede local, sem internet nem servidores de terceiros.
n0-computer/iroh
Biblioteca Rust para conectar apps por chave pública, com transporte QUIC, hole punching e fallback por relay.
- Estrelas
- 12,779
- Forks
- 778
- Issues abertas
- 183
- Último commit
- há 8 horas
O que é?
Iroh permite que aplicações se conectem a um peer usando sua chave pública, em vez de um endereço IP. A biblioteca encontra e mantém a melhor rota disponível até o peer, tentando primeiro uma conexão direta por hole punching e recorrendo a servidores relay públicos quando isso não funciona.
As conexões usam QUIC por meio da biblioteca noq, que oferece criptografia autenticada, streams concorrentes com prioridades e transporte por datagramas, além de evitar bloqueio de linha de frente. Desenvolvedores podem criar seus próprios protocolos sobre essas conexões.
O repositório também oferece protocolos prontos: iroh-blobs para transferência endereçada por conteúdo com BLAKE3, iroh-gossip para redes overlay de publish-subscribe e iroh-docs para um armazenamento de chave-valor com consistência eventual. Os bindings para outras linguagens são mantidos separadamente em iroh-ffi.
Recursos principais
- 01Conecte-se a peers por chave pública, em vez de endereço IP
- 02Conexões diretas por hole punching, com fallback por relay
- 03Conexões QUIC com criptografia e streams multiplexados
- 04Protocolos prontos para transferência de blobs, gossip e documentos de chave-valor
- 05Implementação de servidor relay público incluída no workspace
Casos de uso
- Apps peer-to-peer que precisam conectar dispositivos atrás de NAT
- Sincronização de arquivos entre dispositivos sem um servidor central
- Criação de sistemas de mensagens em tempo real ou redes overlay de pub-sub entre nós
Início rápido
- 1
Instale a biblioteca Rust com cargo
cargo add iroh - 2
Consulte o exemplo echo para ver o código completo
Antes de usar
- É principalmente uma biblioteca Rust; para outras linguagens, são usados os bindings do projeto separado iroh-ffi.
Tópicos
Perguntas frequentes
- O que é iroh?
- Biblioteca Rust para conectar apps por chave pública, com transporte QUIC, hole punching e fallback por relay. Iroh permite que aplicações se conectem a um peer usando sua chave pública, em vez de um endereço IP. A biblioteca encontra e mantém a melhor rota disponível até o peer, tentando primeiro uma conexão direta por hole punching e recorrendo a servidores relay públicos quando isso não funciona.
- iroh é gratuito? Qual é a licença?
- iroh é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- iroh ainda é mantido?
- Manutenção ativa. O último commit de iroh foi em 19 de out. de 2026.
- Para que posso usar iroh?
- Apps peer-to-peer que precisam conectar dispositivos atrás de NAT Sincronização de arquivos entre dispositivos sem um servidor central Criação de sistemas de mensagens em tempo real ou redes overlay de pub-sub entre nós
- Como instalar iroh?
- Instale a biblioteca Rust com cargo: cargo add iroh Consulte o exemplo echo para ver o código completo
- Onde consigo iroh?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/n0-computer/iroh
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma CLI minimalista em Rust que expõe uma porta TCP local por meio de um servidor remoto, permitindo acessar serviços do localhost pela internet pública.
Uma CLI no estilo netcat e uma biblioteca Go que conectam duas máquinas pela camada de dados WireGuard do Tailscale, sem exigir conta ou plano de controle do Tailscale.
Ferramenta de diagnóstico de rede para terminal, escrita em Rust, que mostra tráfego, conexões e pacotes em tempo real e identifica problemas com um comando.
Cliente GTK para Linux do protocolo Quick Share do Google, para enviar e receber arquivos sem fio com dispositivos Android.
Biblioteca JavaScript para criar apps web multiplayer em que os navegadores se conectam diretamente por WebRTC, sem precisar manter um servidor próprio.