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

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:
- Alguém escreve o programa em uma linguagem como C, C++ ou Rust
- Um compilador transforma esse código em um arquivo
.wasm - O navegador baixa o arquivo e o executa dentro de uma área isolada, a sandbox
- 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.

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
É um formato de código compacto que o navegador executa com alto desempenho. Programas escritos em linguagens como C, C++ e Rust são compilados para ele e rodam dentro de uma área isolada, ligada à página por JavaScript.
Não. Os dois trabalham juntos: o JavaScript cuida da interface e da lógica comum da página, e o WebAssembly assume os cálculos pesados. Para a maior parte dos sites, o JavaScript continua sendo suficiente.
Dá. Motores como Unity e Godot exportam jogos para a web usando WebAssembly, e emuladores como o Ruffle rodam jogos antigos em Flash. O resultado depende do jogo, do tamanho dos arquivos e do dispositivo.
O padrão isola cada módulo: ele não acessa arquivos nem a rede por conta própria e segue as regras de segurança do navegador. Isso não elimina erros dentro do próprio módulo, e o JavaScript da página ainda pode enviar dados a um servidor, então a confiança no site continua importante.


