Nuevo backend experimental
- Se agregan compatibilidad con V8, Wasmi y WAMR
- Ahora es posible integrar fácilmente en Wasmer cualquier intérprete o runtime que sea compatible con la especificación Wasm-C-API
- La integración con V8 ofrece una excelente experiencia de depuración mediante el depurador de V8 y Chrome Devtools
- Usar V8 como backend también significa compatibilidad nativa con excepciones de WebAssembly y recolección de basura
Soporte para iOS (disponible mediante bindings de WAMR, Wasmi y V8)
- Wasmer lleva WebAssembly a dispositivos iOS mediante un nuevo modo de intérprete
- Aprovechando las capacidades de V8, Wasmi y WebAssembly Micro Runtime (WAMR), los desarrolladores ahora pueden ejecutar módulos WebAssembly sin fricciones en iOS
- No se requieren cambios en la base de código, lo que permite crear aplicaciones de alto rendimiento en el ecosistema de Apple
Adelgazamiento de la base de código
- Para el lanzamiento de Wasmer 5.0, el enfoque estuvo en hacer la base de código de Wasmer lo más ligera posible
- Algunas dependencias usadas por Wasmer llevaban mucho tiempo sin mantenimiento o estaban duplicadas por crates más nuevos y seguros
- Como los bindings de Emscripten casi no se usaron durante los últimos 2 años, se dejó de darles soporte y, junto con la limpieza de dependencias, se eliminaron 20 mil líneas de código puras de la base de código de Wasmer
Mejora de rendimiento
- La deserialización de módulos ahora es hasta un 50% más rápida (es decir, al llamar a
Module::deserialize o al ejecutar un módulo mediante wasmer run)
- Estas mejoras aprovechan una actualización importante de rkyv, la librería de deserialización de copia cero utilizada para deserializar módulos
Compiladores actualizados: Cranelift y LLVM 18
- Gracias a la integración más reciente de Cranelift, la velocidad de ejecución mejoró de forma significativa, haciendo que los módulos WebAssembly corran más rápido que nunca
- Wasmer 5.0 ahora incluye la versión más reciente de LLVM (18), lo que permite a los desarrolladores acceder a las optimizaciones más nuevas de la toolchain
- La actualización de LLVM mejora la compatibilidad y el rendimiento, proporcionando una base sólida para compilar y ejecutar módulos WebAssembly complejos
- Wasmer 5.0 también llega con soporte experimental para LoongAarch64
- Al hacer benchmark de
coremark con las versiones más recientes de los compiladores, LLVM y Cranelift son alrededor de un 8% más rápidos en Wasmer v5.0 frente a v4.4.0
Opinión de GN⁺
- El lanzamiento de Wasmer 5.0 parece ser un gran hito para el ecosistema de WebAssembly. En particular, el soporte para iOS y la oferta de varias opciones de backend podrían ampliar de forma importante el alcance de WebAssembly hasta las aplicaciones móviles
- Al dar soporte como backend a distintos runtimes como V8, Wasmi y WAMR, los desarrolladores ahora pueden elegir el runtime que mejor se adapte a sus necesidades. Esto parece contribuir de forma significativa a aumentar la flexibilidad y compatibilidad de WebAssembly
- También vale la pena destacar el esfuerzo de optimización del rendimiento mediante el adelgazamiento de la base de código y la adopción de compiladores actualizados. Esto muestra que Wasmer no solo se limita a agregar funciones, sino que también trabaja en la mejora continua de la calidad
- Por otro lado, la descontinuación del soporte para bindings de Emscripten es una parte lamentable, pero parece una decisión razonable dado que su necesidad ha disminuido con la aparición de nuevos estándares como WASI y WASIX
- En conjunto, Wasmer 5.0 es una release que muestra claramente la evolución de WebAssembly, y se proyecta que Wasmer seguirá siendo uno de los principales proyectos que lideran el ecosistema de WebAssembly. Aun así, parece necesario un esfuerzo continuo para mejorar la estabilidad y madurez de las funciones que todavía están en etapa experimental
1 comentarios
Opiniones de Hacker News