18 pontos por GN⁺ 2025-03-13 | 1 comentários | Compartilhar no WhatsApp
  • Usa WebRTC para eliminar a etapa inicial de upload exigida por outros serviços de compartilhamento de arquivos baseados na web
  • Como os dados não são armazenados em servidores intermediários, a transferência é rápida, privada e segura
  • A instância hospedada do FilePizza está disponível em file.pizza

Novidades do FilePizza v2

  • Nova interface com suporte a modo escuro, construída com base em tecnologias modernas de navegador
  • Funciona na maioria dos navegadores móveis, incluindo o Safari no iPhone
  • Transferência direta do navegador de quem envia para o navegador de quem baixa (WebRTC, sem WebTorrent), com handshake mais rápido
  • Quem envia pode monitorar o progresso da transferência e interrompê-la
  • Medidas reforçadas de segurança e proteção com senha e recurso de denúncia
  • É possível enviar vários arquivos de uma vez, e quem baixa os recebe em um arquivo zip
  • Download por streaming via Service Worker
  • Armazenamento do estado do servidor em processo externo usando Redis

Stack técnica e desenvolvimento

  • Next.js, Tailwind, TypeScript, React, PeerJS (para WebRTC), View Transitions, Redis (opcional)
  • O código-fonte pode ser clonado do GitHub e instalado/executado com pnpm
  • Também é possível compilar e executar o FilePizza com Docker

FAQ

  • Como funciona a transferência de arquivos: os arquivos são transferidos diretamente do navegador de quem envia para o navegador de quem baixa. Não passam por servidor. A transferência usa WebRTC, e quem envia precisa manter a janela do navegador aberta até a conclusão da transferência.
  • É possível fazer downloads simultâneos?: Sim. Basta enviar a URL curta ou longa.
  • Limite de tamanho de arquivo: o quanto o navegador conseguir processar
  • Se o navegador for fechado: a URL do arquivo deixa de funcionar. Se o download já tiver sido concluído, essa pessoa continua fazendo seed para quem ainda não terminou, mas novos downloads não podem ser iniciados.
  • Os arquivos são criptografados?: toda comunicação WebRTC é criptografada automaticamente via DTLS. Para mais segurança, é possível adicionar uma senha ao upload.

1 comentários

 
GN⁺ 2025-03-13
Comentários do Hacker News
  • Eu mantenho uma longa lista de ferramentas de transferência de arquivos P2P baseadas em navegador e CLI

    • A LimeWire tem adquirido recentemente boas ferramentas como ShareDrop e SnapDrop
    • No momento, ainda resta https://pairdrop.net/
  • O navegador Opera ofereceu brevemente por volta de 2010 um recurso de transferência de arquivos P2P chamado Unite

    • Na GUI em formato de "geladeira", os usuários podiam deixar anotações no estilo post-it
    • O Opera Presto oferecia vários recursos, incluindo cliente Bittorrent, widgets de desktop, cliente IRC, cliente de e-mail e personalização de teclas de atalho
    • Mesmo assim, o navegador ainda era um binário leve
  • O que normalmente me irrita nesses serviços é que eles fornecem URLs complicadas

    • https://file.pizza é melhor porque a URL é composta por palavras reais
    • Prefiro o https://pairdrop.net porque ele pode gerar uma "sala" temporária de cinco letras, fácil de compartilhar por telefone
    • Estou esperando um serviço P2P que permita iniciar a conexão via CLI e forneça uma URL simples
  • Gostaria que houvesse uma forma de fazer descoberta de pares locais com WebRTC

    • Atualmente, os dois endpoints precisam de uma conexão ativa com a internet e de um identificador compartilhado
    • O compartilhamento local offline é impossível
  • Tenho receio de que aconteça com ShareDrop e Snapdrop o mesmo que aconteceu ao serem adquiridos pela LimeWire

  • Esse problema já deveria ter sido resolvido há décadas, mas ainda faltam soluções não comerciais que sejam robustas e seguras

    • Fico curioso para saber como anda o projeto IPFS hoje em dia
  • O WebRTC é rápido e seguro porque os dados não ficam armazenados em um servidor intermediário

    • Porém, é necessário um servidor TURN para transferências entre clientes atrás de NAT
    • Os dados não ficam armazenados no servidor intermediário, mas podem passar por ele
    • Fico me perguntando se existe alguma garantia de que o servidor TURN não possa ler os dados
    • Também fico curioso se E2EE é usado ou não
  • Se instalar o Transmission ou outro cliente de torrent não for um problema, prefiro a abordagem de privtracker

    • A maioria dos clientes de torrent pode rodar em segundo plano por padrão
    • Seria uma pena se isso tivesse ganhado atenção recentemente e eu tivesse deixado passar
  • Gosto muito do PairDrop

  • Também existe o Magic Wormhole, embora não seja baseado em navegador