WebAssembly (Wasm) permite executar código binário de alto desempenho no navegador e além. Em setembro de 2025, a especificação Wasm 3.0 foi concluída, com mudanças relevantes.
Com base no blog do WebAssembly, Platform Uno e web.dev:
1. Suporte nos Browsers
Wasm tem ~96% de adoção global. Principais browsers suportam o core; o Safari costuma ditar quando novos recursos ficam prontos para produção.
2. Novidades do Wasm 3.0 (Set/2025)
- 64-bit Address Space — Memória de 4GB para até 16 exabytes, importante para apps não-web
- Multiple Memories — Módulos podem declarar e usar várias memórias; facilita linking estático e cenários de segurança
- Garbage Collection — Gerenciamento automático de memória mantendo o caráter de baixo nível
- Typed References — Tipos de referência mais ricos e subtyping
3. Outros Avanços em 2025
- Exception Handling (exnref) — Safari 18.4
- JavaScript String Builtins — Uso direto de strings JS sem “glue code”
4. Onde Wasm Faz Sentido
- Cálculos intensivos (games, edição de mídia, simulações)
- Portar código C/C++/Rust para a web
- Performance próxima de nativo com segurança de sandbox
5. Quando Não Priorizar
- Apps dominados por I/O e lógica de UI — JavaScript costuma ser suficiente
- Complexidade extra de toolchain e deploy
6. Linguagens que Compilam para Wasm
Rust, C, C++, AssemblyScript e Go têm suporte maduro. O Rust é particularmente popular por segurança de memória e ecossistema (wasm-pack, wasm-bindgen). Para quem já conhece JS, AssemblyScript oferece sintaxe familiar.
7. Casos de Uso Reais
Figma, Photoshop na web, AutoCAD e editores de vídeo usam Wasm para rodar engines pesadas no browser. Jogos, codecs de mídia e processamento de imagens são candidatos naturais. Para CRUDs e dashboards, JavaScript continua suficiente.
8. Ferramentas de Desenvolvimento
Ferramentas como Emscripten (C/C++), wasm-pack (Rust) e Go's wasm target simplificam a compilação. O debug ainda é menos maduro que em JS — planeje investir tempo em configuração de source maps e stepping.