Wasm3 entra en una fase de mantenimiento mínimo
(github.com/wasm3)- Wasm3 es un intérprete rápido de WebAssembly y apunta a ser un runtime WASM de propósito general, pero dejará de desarrollar nuevas funciones y entra en una fase de mantenimiento mínimo
- El desarrollador explicó que, después de que su casa fuera destruida por la invasión rusa, ya no puede continuar con el desarrollo de nuevas funciones, aunque afirmó que mantendrá vivo el proyecto y revisará e integrará los Pull Requests que lleguen
wasm3pasa la WebAssembly spec testsuite y puede ejecutar muchas aplicacionesWASI; los requisitos mínimos útiles del sistema son aproximadamente 64KB de código y 10KB de RAM- Soporta múltiples arquitecturas como x86, x86_64, ARM, RISC-V, PowerPC, MIPS, Xtensa y ARC32, además de Linux, Windows, OS X, FreeBSD, Android, iOS, MCU, navegadores e incluso ejecutarse a sí mismo
- El enfoque de intérprete ofrece ventajas en tamaño del ejecutable, uso de memoria, latencia de arranque, portabilidad, seguridad y dificultad de integración; además, en entornos como iOS o el propio WebAssembly, no es posible usar JIT porque no se pueden crear páginas de código ejecutable en tiempo de ejecución
Cambio en el estado de mantenimiento
- Wasm3 entra en una fase de mantenimiento mínimo
- Es difícil seguir con el desarrollo de nuevas funciones
- El proyecto se mantendrá y los Pull Requests entrantes se revisarán e integrarán activamente
- Las contribuciones de la comunidad pasan a ser más importantes que antes
- El desarrollador señaló que, después de que su casa fuera destruida por la invasión rusa, actualmente no puede continuar con el desarrollo de nuevas funciones
Lo que ofrece Wasm3
- Wasm3 apunta a ser un intérprete rápido de WebAssembly y un runtime WASM de propósito general
- Las afirmaciones sobre rendimiento se basan en CoreMark 1.0 y en benchmarks independientes
- El rendimiento real puede variar según el entorno
- Hay muchos lenguajes y entornos donde también puede usarse como librería
Entornos de ejecución y requisitos
wasm3pasa la WebAssembly spec testsuite- Puede ejecutar muchas aplicaciones
WASI - Los requisitos mínimos útiles del sistema son los siguientes
- Código: aproximadamente 64KB
- RAM: aproximadamente 10KB
- El rango de arquitecturas soportadas es amplio
x86,x86_64,ARM,RISC-V,PowerPC,MIPS,Xtensa,ARC32, entre otras
- También soporta una amplia variedad de plataformas y entornos
- Linux, Windows, OS X, FreeBSD, Android, iOS
- Routers y módems basados en OpenWrt, Yocto y Buildroot
- SBC como Raspberry Pi y Orange Pi
- MCU como Arduino, ESP8266, ESP32 y Particle
- Puede ejecutarse en el navegador usando el propio WebAssembly
- También permite self-hosting, donde
wasm3ejecuta awasm3
Soporte de funciones de WebAssembly
- Funciones de propuestas de WebAssembly soportadas
- Import/Export of Mutable Globals
- Non-trapping float-to-int conversions
- Sign-extension operators
- Multi-value
- Bulk memory operations con soporte parcial
- Custom page size
- Funciones adicionales
- Trazado estructurado de ejecución
- Soporte para sistemas Big-Endian
- Self-hosting de Wasm y WASI
- Gas metering
- Límite de memoria lineal: menos de 64KiB
- También hay elementos aún en progreso o no soportados
- En progreso: Multiple memories, Reference types
- No soportados: Tail call optimization, Fixed-width SIMD, Exception handling, Stack Switching
Por qué elegir un intérprete y WASM embebido
- La velocidad no siempre es el requisito principal, y el enfoque de intérprete tiene ventajas en varias situaciones
- Puede mejorar el tamaño del ejecutable del runtime, el uso de memoria y la latencia de arranque
- Es más fácil lograr y mantener la portabilidad y la seguridad
- Una librería simple como Wasm3 es fácil de compilar e integrar en proyectos existentes, y la compilación termina en cuestión de segundos
- En algunas plataformas no se puede usar JIT
- En iOS y en el propio WebAssembly no es posible crear páginas de código ejecutable en tiempo de ejecución
- También se presentan razones para ejecutar WASM en dispositivos embebidos
- Wasm3 comenzó como un proyecto de investigación, y evaluar motores en distintos entornos forma parte de esa investigación
- En un contexto donde en MCU ya se ejecutan
Lua,JS,PythonyLisp,WebAssemblytambién puede ser una alternativa - WebAssembly ofrece separación del toolchain y un entorno completamente aislado, bien definido y predecible
- Entre los casos prácticos están edge computing, scripting, sistemas de plugins,
IoT rulesy contratos inteligentes
Material de referencia y licencia
- Documentación principal
- Material relacionado
- El proyecto se distribuye bajo la MIT License
1 comentarios
Comentarios de Hacker News
Como es una cuenta anónima, puedo decirlo sin que se sienta como presumir: he hecho lo que he podido, como donar, denunciar trolls, contrarrestar la desinformación y presionar a políticos. Aun así, siento que todavía le debo algo al pueblo ucraniano
Quiero que sepas que no estás solo, y ojalá otras personas también hagan pequeñas acciones como pedirles a sus políticos que actúen, ayudar con donaciones a civiles y héroes del frente, y denunciar la desinformación
Espero que Volodymyr esté bien mientras intenta mantener el proyecto en medio de la invasión rusa de Ucrania, y ojalá la guerra termine pronto
Su rendimiento es muy bueno, y la arquitectura y la belleza del código sin duda impresionan
El tuit enlazado es de septiembre de 2022, muestra un video de la casa destruida y pide donaciones a quienes quieran ayudar
La UE debería aportar mucho más dinero para ayudar a Ucrania