Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly

Se ha presentado la versión del proyecto Wasmer 5.0, que desarrolla un runtime para ejecutar módulos WebAssembly, que se puede utilizar para crear aplicaciones universales capaces de ejecutarse en diferentes sistemas operativos. Wasmer también se puede aplicar para la ejecución aislada de bloques de código no confiables dentro de aplicaciones comunes. El código del proyecto está escrito en Rust y se distribuye bajo la licencia MIT.

La capacidad de ejecutar una aplicación en diferentes plataformas se realiza a través de la compilación a un código intermedio de bajo nivel WebAssembly, que puede ejecutarse en cualquier SO o incrustarse en programas en otros lenguajes de programación. Los programas son contenedores livianos en los que se ejecuta el pseudocódigo WebAssembly. Estos contenedores no están ligados a ningún sistema operativo y pueden incluir código inicialmente escrito en cualquier lenguaje de programación.

Para la ejecución de código intermedio WebAssembly o su traducción a código máquina de la plataforma de destino, se ofrecen diferentes backends:

  • Backend basado en el compilador Singlepass, óptimo para su uso en blockchains.
  • Backend basado en el generador de código Cranelift, óptimo para su uso en el proceso de desarrollo.
  • Backend basado en el compilador LLVM, óptimo para su uso en implementaciones en producción.
  • Backend para ejecutar en un navegador web.
  • Backend basado en el motor JavaScript JavascriptCore, óptimo para su uso en la plataforma macOS.
  • Backend basado en el motor JavaScript V8, óptimo para aplicaciones en las plataformas iOS y Android.
  • Backend basado en el intérprete Wasmi, óptimo para blockchains y proyectos Rust que no utilizan la biblioteca estándar (nostd).
  • Backend basado en el runtime WAMR, óptimo para la plataforma iOS.

Las aplicaciones se aíslan del sistema principal en un entorno sandbox y solo tienen acceso a la funcionalidad declarada. Para la aislamiento se utiliza un mecanismo basado en el control de capacidades: para cada uno de los recursos (archivos, directorios, sockets, llamadas del sistema, etc.) que la aplicación debe tener los permisos correspondientes. El control de acceso y la interacción con el sistema se gestionan a través de la API WASI (WebAssembly System Interface), que proporciona interfaces de programación para trabajar con archivos, sockets y otras funciones del sistema.

La plataforma permite lograr un rendimiento de ejecución de aplicaciones similar al de las compilaciones nativas. Con el Native Object Engine para el módulo WebAssembly se puede generar código máquina, cuyo tiempo de ejecución mínimo es necesario, pero se mantienen todas las capacidades de aislamiento sandbox. Es posible el suministro de programas precompilados con Wasmer incorporado. Para la creación de extensiones y complementos se ofrecen APIs de Rust y Wasm-C-API.

Para ejecutar un contenedor WebAssembly, solo es necesario instalar en el sistema el runtime Wasmer, que se proporciona sin dependencias externas ("curl https://get.wasmer.io -sSfL | sh"), y ejecutar el archivo necesario ("wasmer test.wasm"). Los programas se distribuyen en forma de módulos WebAssembly comunes, cuyo manejo se puede realizar mediante el gestor de paquetes WAPM. Wasmer también está disponible en forma de biblioteca, que se puede usar para integrar código WebAssembly en programas en lenguajes como Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir y Java.

Novedades principales de Wasmer 5.0:

  • Se ha implementado la posibilidad de utilizar intérpretes de WebAssembly.
  • Se ha añadido un backend experimental basado en el intérprete ligero Wasmi, que permite ejecutar código intermedio de WebAssembly en entornos con recursos limitados.
  • Se ha añadido un backend experimental basado en el runtime de WebAssembly WAMR (WebAssembly Micro Runtime), optimizado para un consumo mínimo de recursos y adecuado para ser utilizado en dispositivos con poca memoria RAM.
  • Se ha añadido un backend experimental basado en el motor JavaScript v8, utilizado en navegadores con código base Chromium. La principal ventaja de utilizar el backend basado en V8 es la posibilidad de emplear el depurador y las herramientas de desarrollo web incorporadas en este motor, así como la disponibilidad en V8 de funcionalidades avanzadas para WebAssembly, como el manejo de excepciones y la recolección de basura.
  • Se ha añadido soporte experimental para la arquitectura Loongarch64 en el backend que utiliza LLVM.
  • Se ha añadido soporte para la plataforma iOS, disponible al utilizar los backends WAMR, Wasmi y V8.
  • Se ha dejado de soportar el compilador Emscripten.
  • Se han actualizado las dependencias, entre las que se encuentran LLVM 18, el generador de código Cranelift 27 y el marco rkyv 0.8.
  • Se ha optimizado el rendimiento. Por ejemplo, al realizar operaciones de deserialización de módulos se observa un aumento del rendimiento de hasta un 50%.
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly
    Wasmer 5.0 ya está disponible, un conjunto de herramientas para crear aplicaciones basadas en WebAssembly

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster