Novo backend experimental
- Adicionado suporte a V8, Wasmi e WAMR
- Agora é possível integrar facilmente ao Wasmer qualquer interpretador ou runtime compatível com a especificação Wasm-C-API
- A integração com o V8 oferece uma excelente experiência de depuração por meio do depurador do V8 e do Chrome DevTools
- Usar o V8 como backend também significa suporte nativo a exceções do WebAssembly e coleta de lixo
Suporte a iOS (fornecido por meio de bindings para WAMR, Wasmi e V8)
- O Wasmer leva WebAssembly a dispositivos iOS por meio de um novo modo interpretador
- Aproveitando os recursos do V8, Wasmi e WebAssembly Micro Runtime (WAMR), os desenvolvedores agora podem executar módulos WebAssembly no iOS com fluidez
- Não são necessárias alterações na base de código, o que permite criar aplicações de alto desempenho no ecossistema Apple
Enxugamento da base de código
- Para o lançamento do Wasmer 5.0, o foco foi tornar a base de código do Wasmer o mais enxuta possível
- Algumas dependências usadas pelo Wasmer não eram mantidas havia muito tempo ou já estavam redundantes diante de crates mais novos e seguros
- Como os bindings do Emscripten quase não foram usados nos últimos 2 anos, o suporte foi descontinuado e, junto com a limpeza de dependências, isso removeu 20 mil linhas de código da base do Wasmer
Melhorias de desempenho
- A desserialização de módulos agora está até 50% mais rápida (ou seja, ao chamar
Module::deserialize ou ao executar um módulo via wasmer run)
- Essas melhorias aproveitam uma atualização importante do rkyv, a biblioteca de desserialização zero-copy usada para desserializar módulos
Compiladores atualizados: Cranelift e LLVM 18
- Com a integração do Cranelift mais recente, a velocidade de execução em runtime melhorou significativamente, fazendo com que módulos WebAssembly rodem mais rápido do que nunca
- O Wasmer 5.0 agora inclui a versão mais recente do LLVM (18), dando aos desenvolvedores acesso às otimizações mais novas da toolchain
- A atualização do LLVM melhora compatibilidade e desempenho, oferecendo uma base robusta para compilar e executar módulos WebAssembly complexos
- O Wasmer 5.0 também traz suporte experimental a LoongAarch64
- No benchmark com
coremark usando as versões mais recentes dos compiladores, LLVM e Cranelift ficaram cerca de 8% mais rápidos no Wasmer v5.0 em comparação com o v4.4.0
Opinião do GN⁺
- O lançamento do Wasmer 5.0 parece ser um marco importante para o ecossistema WebAssembly. Em especial, o suporte a iOS e a oferta de várias opções de backend devem ampliar bastante o alcance do WebAssembly até aplicações móveis
- Ao oferecer suporte a diferentes runtimes como V8, Wasmi e WAMR como backend, os desenvolvedores agora podem escolher o runtime mais adequado às suas necessidades. Isso deve contribuir bastante para aumentar a flexibilidade e a compatibilidade do WebAssembly
- Também merece destaque o esforço de otimização de desempenho por meio do enxugamento da base de código e da adoção de compiladores mais recentes. Isso mostra que o Wasmer não está apenas adicionando recursos, mas também investindo em melhoria contínua de qualidade
- Por outro lado, a descontinuação do suporte aos bindings do Emscripten é um ponto lamentável, mas parece uma escolha razoável, considerando que sua necessidade diminuiu com o surgimento de novos padrões como WASI e WASIX
- No geral, o Wasmer 5.0 é uma release que mostra bem a evolução do WebAssembly, e a expectativa é que o Wasmer continue sendo um dos principais projetos a liderar o ecossistema WebAssembly. Ainda assim, parece necessário um esforço contínuo para aumentar a estabilidade e a maturidade dos recursos que ainda estão em fase experimental
1 comentários
Comentários do Hacker News