1

Pitch: Como o AtlasDocs roda 140 ferramentas de arquivo sem enviar nada ao servidor

Quando alguém junta dois PDFs, extrai o áudio de um vídeo ou lê o texto de uma foto no AtlasDocs, o arquivo não viaja para lugar nenhum. O navegador baixa o programa que faz o trabalho, e o trabalho acontece na memória da máquina de quem usa. O resultado nasce ali e é salvo direto no dispositivo. Não existe upload, não existe fila em servidor, e não existe uma cópia do documento guardada em algum lugar esperando ser apagada.

Escrevi no blog do AtlasDocs um texto explicando como isso é possível e onde estão os limites. Aqui vai o resumo:

O que roda dentro da aba

A base é o WebAssembly, que permite executar no navegador programas escritos originalmente para computador:

  • 7-Zip para arquivos compactados (via 7z-wasm)
  • FFmpeg para vídeo e áudio (via ffmpeg.wasm), num Web Worker
  • Tesseract para reconhecer texto em imagens (via tesseract.js)
  • SQLite para bancos de dados (via sql.js)
  • Leitura de RAR (via node-unrar-js); criar RAR não, por licença
  • pdf-lib e pdf.js para editar e desenhar PDF

Cada motor carrega sob demanda, no primeiro uso, então a página inicial pesa o mesmo com ou sem as ferramentas pesadas. Um gate de peso no pipeline de testes impede que uma versão suba mais pesada que o limite.

As duas exceções

Duas ferramentas enviam o arquivo ao servidor: converter Word, Excel e PowerPoint para PDF, e visualizar esses documentos. Não existe hoje um programa para navegador que abra arquivos do Office com fidelidade; quem faz isso bem é o LibreOffice, que precisa de um servidor. Nesses dois casos o arquivo é convertido e descartado, e a ferramenta avisa na tela antes do envio. As outras 136 ferramentas continuam no dispositivo.

Onde está o resto

A versão completa tem o passo a passo para você conferir por conta própria na aba Network do navegador, como o código é mantido (737 testes unitários e 176 testes em navegador real por versão, Lighthouse no celular entre 94 e 97) e o que eu faria diferente se começasse hoje:

https://atlasdocs.io/blog/como-o-atlasdocs-processa-arquivos-no-navegador

Dúvidas sobre como uma conversão específica funciona, pergunte aqui nos comentários.

Carregando publicação patrocinada...