>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

Como Enviar 50 Gigabytes para um Colega Sem Nuvens e Limites de Velocidade

DashBeam Header

Uma situação familiar: você precisa enviar para um colega um dump de banco de dados novo de vinte gigabytes ou um arquivo com logs pesados. O Telegram reclama do limite de tamanho do arquivo. O Google Drive e o Yandex Disk exigem que você carregue tudo para seu próprio armazenamento primeiro, consumindo sua quota de disco, e então forçam o destinatário a esperar o download. O conhecido LocalSend é útil no escritório, mas falha quando a outra pessoa está em um ISP diferente.

Recentemente encontrei um projeto interessante chamado DashBeam (era anteriormente desenvolvido como AltSendme). O programa resolve exatamente esse problema: ele encaminha arquivos e pastas inteiras diretamente de um computador para outro pela internet, sem armazenar nada em servidores intermediários.

DashBeam working demo

Por Trás das Cortinas

DashBeam é construído sobre a pilha de rede Iroh. É um motor P2P open-source escrito em Rust. Em vez de HTTP clássico ou WebRTC temperamental, ele usa o protocolo QUIC sobre UDP com criptografia TLS 1.3.

A transferência de dados é projetada de forma inteligente:

  • Arquivos e pastas são divididos em blocos endereçados por conteúdo (blobs). Cada bloco é verificado com um hash criptográfico BLAKE3 rápido. Se a conexão cair, o DashBeam não baixa o arquivo novamente do zero—ele envia apenas os blocos faltantes.
  • Um ticket de texto é gerado para pareamento. A string contém o identificador do remetente (chave Ed25519), endereços para conexão direta e o hash do arquivo solicitado.
  • Os dispositivos primeiro tentam furar o NAT via QUIC hole punching para rotear o tráfego diretamente. Se ambos os nós estão atrás de firewalls rígidos, o tráfego passa por um relay, mas criptografado. O relay vê apenas ruído e não consegue ler o conteúdo.
  • Para troca regular entre seus próprios dispositivos, há pareamento permanente. Vincule seu laptop de trabalho e celular com um código uma vez, e então os arquivos são enviados em um clique sem copiar tickets manualmente.

Nos benchmarks, o desenvolvedor mostra velocidades de até 125 MB/s (limitado por uma rede gigabit), e a maior transferência registrada foi de 452 GB.

O mercado de transferência P2P não carece de soluções, mas cada uma tem suas próprias particularidades:

LocalSend funciona muito bem dentro de uma única rede local, mas não consegue furar a internet sem configuração de VPN, e transferências interrompidas precisam ser reiniciadas do zero.

Magic Wormhole é maravilhoso no terminal, porém não possui uma GUI oficial adequada e não consegue retomar transferências interrompidas.

Utilitários baseados em navegador como PairDrop são limitados pelas restrições do WebRTC e pela memória da aba do navegador, por isso pastas de gigabytes frequentemente travam a página.

DashBeam combina todos os cenários. O aplicativo está disponível como cliente desktop para Windows, macOS e Linux, um APK standalone para Android, um CLI leve de terminal, e até uma versão web simplificada para casos onde instalar software não é uma opção.

Como Usar

O fluxo de trabalho é direto:

  1. Arraste e solte um arquivo ou diretório na janela do programa.
  2. Obtenha o ticket gerado e envie-o para o destinatário via qualquer mensageiro.
  3. O destinatário cola o ticket no cliente dele, vê uma prévia dos arquivos e confirma o download.

Se você compartilha frequentemente builds de teste ou arquivos entre suas próprias máquinas, é mais conveniente ir para a seção de configurações, vincular dispositivos com um par permanente, e enviar dados diretamente com um único clique no botão Enviar.

Quem achará este projeto útil? Desenvolvedores e engenheiros DevOps para transferir rapidamente VMs, backups e dumps sem poluir discos corporativos. Editores de vídeo e designers que precisam entregar arquivos-fonte para clientes sem restrições de tamanho de armazenamento em nuvem.

O código-fonte é distribuído sob a licença AGPL-3.0. Se desejar, você pode fazer deploy do seu próprio servidor relay e descoberta DNS no seu VPS—a documentação e configurações para isso estão diretamente no repositório do projeto.

Projetos relacionados