Kastavo

O que é WebAssembly e como ele roda jogos e aplicativos pesados no navegador

Como o WebAssembly leva jogos, editores e programas pesados para o navegador, e o que ele não resolve.

6 min de leitura

  • tecnologia
  • desempenho
  • kastavo
Um cubo luminoso feito de pequenos módulos violeta dentro da moldura de uma janela de navegador, em fundo escuro

Durante muito tempo, o navegador era lugar de coisa leve: páginas, formulários, alguns efeitos. Hoje dá para abrir um editor de design, um mapa em 3D ou um jogo completo sem instalar nada. Boa parte disso só é possível por causa do WebAssembly, ou Wasm, uma tecnologia que deixa o navegador executar código pesado quase como se fosse um programa instalado.

O que é WebAssembly, sem jargão

O navegador entende JavaScript de fábrica. O WebAssembly é um segundo formato: um arquivo binário compacto, pensado para rodar com alto desempenho. O caminho é simples:

  1. Alguém escreve o programa em uma linguagem como C, C++ ou Rust
  2. Um compilador transforma esse código em um arquivo .wasm
  3. O navegador baixa o arquivo e o executa dentro de uma área isolada, a sandbox
  4. O JavaScript conecta esse arquivo à página: botões, tela, arquivos que você escolhe

Por isso o WebAssembly não substitui o JavaScript. Os dois trabalham juntos: o JavaScript cuida da interface e o Wasm faz o trabalho pesado. Ele virou padrão oficial do W3C em dezembro de 2019 e continua evoluindo: a versão 3.0, concluída em 2025, ampliou o limite de memória e facilitou a compilação de linguagens como Java, Kotlin e Dart.

Diagrama em quatro etapas: código-fonte em C, C++ ou Rust, compilador, arquivo .wasm e navegador, em uma área isolada; o JavaScript liga tudo à página, com botões, tela e arquivos
O caminho do código-fonte até o navegador, com o JavaScript ligando o módulo à página

Jogos: de motores profissionais a Flash ressuscitado

É aqui que o WebAssembly mais chama atenção. O Unity compila o código do próprio motor, escrito em C e C++, para WebAssembly, e converte os scripts em C# do jogo em C++ por meio de uma tecnologia chamada IL2CPP, antes de compilá-los para o mesmo destino. O Godot também exporta jogos para a web usando WebAssembly.

Tem ainda um uso mais nostálgico: o Ruffle, um emulador de Flash escrito em Rust que roda no navegador com WebAssembly. A Adobe encerrou o suporte ao Flash Player em 31 de dezembro de 2020 e, em janeiro de 2021, passou a bloquear a execução de conteúdo Flash, sem mais atualizações de segurança. O emulador permite abrir jogos e animações antigos sem plugin.

E fora dos jogos?

O padrão se repete: programas grandes, muitas vezes com anos de código em C ou C++, ganham uma versão para o navegador sem precisar ser reescritos do zero.

  • Design e edição: o Figma, cujo código é escrito em C++, passou a rodar em WebAssembly e relatou um carregamento mais de três vezes mais rápido. A Adobe também levou boa parte do Photoshop para a web compilando o código C++ que já tinha.
  • Mapas e engenharia: o Google Earth chegou a mais navegadores graças ao WebAssembly, e o AutoCAD levou para o navegador uma base de código com mais de 30 anos.
  • Mídia: o FFmpeg, biblioteca conhecida de vídeo e áudio, tem uma versão em WebAssembly e JavaScript que converte vídeo direto no navegador. O Squoosh, aplicativo do Google para comprimir imagens, usa codecs compilados para WebAssembly.
  • Dados e linguagens: o banco de dados SQLite e o Python (por meio do Pyodide) também foram compilados para rodar no navegador.

Velocidade e privacidade: o que o WebAssembly muda e o que não muda

Quando o trabalho pesado roda no seu dispositivo, a ferramenta responde sem esperar por um servidor, e o arquivo não precisa sair do seu computador. Mas convém separar as coisas: o WebAssembly sozinho não garante privacidade. Ele roda isolado e não acessa arquivos nem a rede por conta própria, só pelo que o JavaScript da página permite. E o JavaScript da mesma página pode, sim, enviar um arquivo para um servidor. A privacidade vem de como o site foi construído, não da tecnologia.

Por isso vale testar em vez de confiar em promessa genérica. Abra as ferramentas do desenvolvedor do navegador, vá na aba Rede e veja se o arquivo sai do seu dispositivo. Ou carregue a página, desligue a internet e veja se a ferramenta continua funcionando. Alguns módulos só são baixados quando você usa a ferramenta, não ao abrir a página: use-a uma vez com a internet ligada antes de desligá-la.

O que o WebAssembly não faz

  • Não é sempre mais rápido. Para mexer na página e na lógica comum de um site, o JavaScript continua sendo a escolha certa. O ganho aparece em cálculos pesados.
  • Ainda é uma tecnologia de nicho na web em geral. O relatório Web Almanac de 2022 já a descrevia assim, com o benefício concentrado em aplicações complexas, com bases de código grandes.
  • Um módulo Wasm continua sendo código baixado de um site. O isolamento protege você de módulos com bug ou maliciosos (essa é uma das metas de segurança do padrão), mas não elimina todos os tipos de erro, e a confiança em quem entrega o código continua necessária. É o mesmo raciocínio do nosso texto sobre ataques de supply chain.

E o Kastavo?

No Kastavo, as ferramentas rodam no navegador, e o WebAssembly entra apenas onde o trabalho é pesado o bastante para compensar: Proteger PDF com senha e Remover senha de PDF, que usam o QPDF compilado para WebAssembly, e Extrair Texto de Imagem (OCR), que usa o Tesseract. A maioria das demais ferramentas usa JavaScript, que é suficiente para tarefas mais leves. A escolha é técnica, não de marketing. A privacidade vem de o arquivo ser processado no seu dispositivo, e você pode conferir isso com os testes da seção anterior. Para entender essa arquitetura em geral, veja Por que o Kastavo não tem servidor.

O que fica de lição

O WebAssembly transformou o navegador em um lugar onde cabem jogos, editores e ferramentas que antes só existiam instalados. É um avanço real de velocidade e de conveniência. Mas a tecnologia sozinha não diz o que um site faz com os seus dados: isso depende de como ele foi construído e de você conseguir verificar. A pergunta útil não é só "isso roda no navegador?", mas "o que acontece com o meu arquivo enquanto roda?"

Perguntas frequentes

Continue lendo

Este site usa cookies

Usamos cookies para melhorar sua experiência e entender como o site é usado. Você pode mudar essa escolha quando quiser em Preferências de cookies. Veja nossa Política de Privacidade.