Executando verificação de segurança...
2

Shuttle: Transferência de Arquivos P2P Simples e Segura com WebRTC

Shuttle é uma ferramenta CLI e biblioteca para transferência de arquivos e diretórios P2P usando WebRTC e IDs temporários. O foco é bootstrap rápido de projetos e colaboração temporária sem depender de servidores de terceiros para o payload.

Diferente de ferramentas de transferência estática, o Shuttle suporta sincronização em tempo real e um sistema de propostas de mudança bidirecional controlada.

O que resolve:

  • Transferência direta: O servidor de sinalização (signaling) estabelece a conexão, mas nunca toca nos dados.
  • Sincronização Live: Mantém arquivos atualizados conforme são editados localmente.
  • Controle de escrita: O receptor pode propor mudanças que o emissor aceita ou ignora, garantindo que o lado "autoritativo" sempre tenha o controle final.

Instalação rápida:

npm install -g johankit-shuttle

Exemplo de uso:

No lado do emissor (Push):

# Compartilha a pasta atual e aguarda mudanças do outro lado
shuttle push . --live --allow-changes --auto-accept

Gera um ID como: G1946C

No lado do receptor (Pull):

# Conecta via ID e recebe atualizações em tempo real
shuttle pull G1946C --live

Características Técnicas:

  • WebRTC Nativo: Utiliza @roamhq/wrtc para permitir conexões via Node.js fora do browser.
  • Chunks & Base64: Suporta arquivos grandes através de fragmentação de pacotes JSON.
  • Chokidar Integration: Monitoramento de sistema de arquivos eficiente para o modo live.

Segurança:

  • Fluxo de dados via túnel direto P2P.
  • Segurança de caminho (safePath) para evitar ataques de traversal.
  • O emissor é sempre a autoridade sobre o sistema de arquivos.

Links:

Carregando publicação patrocinada...