Sem upload, 100% local, sem conta

Artigo

O que é processamento client-side?

A maioria das ferramentas de arquivo funciona enviando seu documento para um computador remoto, que faz o trabalho pesado e devolve o resultado. O processamento client-side inverte isso: o seu próprio navegador faz o trabalho, e o arquivo nunca sai do seu dispositivo.

Duas formas de uma ferramenta funcionar: na sua máquina ou na deles

No processamento server-side, fazer upload de um arquivo é como levar roupa para lavar fora: você entrega, uma máquina remota cuida disso e você pega o resultado depois. O processamento client-side é como lavar em casa. A ferramenta roda dentro da aba do seu navegador, lê o arquivo da memória, processa e entrega o resultado, tudo sem o arquivo tocar em nenhuma conexão de rede. O site só precisa entregar o código de processamento uma vez. Depois disso, tudo funciona do seu lado.

O que o WebAssembly trouxe para o navegador

Durante anos, os navegadores só podiam rodar JavaScript, que é ótimo para interfaces mas lento demais para tarefas como recodificar um vídeo ou comprimir uma imagem grande. O WebAssembly (geralmente abreviado como WASM) mudou isso. É um formato binário compacto que os navegadores conseguem executar em velocidade próxima à nativa, então código originalmente escrito em C ou C++ pode ser compilado para WASM e rodar dentro de uma aba do navegador sem nenhum plugin. Os mesmos codecs e bibliotecas de compressão que movem softwares desktop agora rodam diretamente na página. JavaScript e WebAssembly trabalham juntos: o JavaScript cuida da interface e da orquestração, enquanto o WASM cuida do processamento pesado.

O que acontece de fato durante uma tarefa

Quando você arrasta um arquivo para uma ferramenta client-side, a página carrega um pequeno motor de processamento (geralmente um módulo WASM), caso ainda não tenha feito isso, e passa seu arquivo para ele via JavaScript. O processamento em si geralmente roda em uma thread em segundo plano chamada Web Worker, o que mantém a interface do navegador responsiva enquanto o trabalho acontece. Você pode abrir a aba Network do seu navegador a qualquer momento durante esse processo e nenhuma requisição com o seu arquivo vai aparecer. O resultado é montado na memória e oferecido a você como download.

Tradeoffs honestos que você deve conhecer

Na primeira vez que você usa uma ferramenta que depende de um motor WASM grande, o navegador baixa esse motor e o armazena em cache. Usos posteriores pulam o download e funcionam completamente offline. Como o processamento roda no seu dispositivo, um arquivo muito grande leva o tempo que o seu processador e a memória disponível permitem, e um data center terminaria algumas tarefas pesadas mais rápido. O que você ganha em troca é real: seu arquivo nunca é transmitido, não há espera de upload em conexões lentas, e a ferramenta continua funcionando sem internet depois do primeiro carregamento.

Ferramentas neste artigo

Perguntas frequentes

O processamento client-side significa automaticamente que meus dados são privados?

Client-side significa que o arquivo não é enviado a um servidor por design, o que é o que torna a privacidade possível. Você pode confirmar isso abrindo a aba Network nas ferramentas de desenvolvedor do seu navegador enquanto processa um arquivo: nenhuma requisição de saída deve conter os dados do seu arquivo. Mesmo assim, é prudente verificar se uma ferramenta realmente se comporta dessa forma em vez de confiar apenas no rótulo.

Por que o primeiro uso de uma ferramenta às vezes é mais lento?

O navegador precisa baixar o motor de processamento (o módulo WASM) na primeira vez que você o usa, o que pode levar alguns segundos dependendo do tamanho e da sua conexão. Depois disso, o motor fica em cache localmente, então as sessões seguintes começam imediatamente e a ferramenta funciona offline.