Dr. Francisco Barba
Los Yaquis Restaurant
La Gallinita Meat Market
Dr. Francisco García
Desarrollo Virtual
Abogado James Millar
Sonrisas Bright Dental
Ayuda Financial
Abogado Wilson Purves
City Toyota
Kisla Gonzales
World Wide Credit Experts
Gonzales Dental Care
FINHABITS
Dr. Alberto Chaparro
David Huete
Imperial Travel
Latch Quiroprácticos
Jorge Brignole
Daly City Dental Center
Araujo’s Restaurant
Alquimia Med Spa
Pathway Insurance Agency
Elías Travel
Abogado Alexander Cross
previous arrow
next arrow

Categoria:

Wasmer 3.0 llega con mejoras en WASI, APIs, gestión de memoria y mas

Autor: Darkcrizt
Wasmer

Wasmer es un tiempo de ejecución de WebAssembly rápido y seguro que permite que los contenedores súper livianos se ejecuten en cualquier lugar: desde el escritorio hasta la nube, Edge y dispositivos IoT

Después de casi 6 meses desde el lanzamiento anterior, se dio a conocer la nueva versión de Wasmer 3.0, la tercera versión principal del proyecto que desarrolla un tiempo de ejecución para ejecutar módulos WebAssembly que se pueden usar para crear aplicaciones universales que se pueden ejecutar en diferentes sistemas operativos, así como la ejecución de código que no es de confianza.

La capacidad de ejecutar la misma aplicación en diferentes plataformas se proporciona al compilar el código en un código intermedio WebAssembly de bajo nivel que puede ejecutarse en cualquier sistema operativo o integrarse en programas en otros lenguajes de programación. Los programas son contenedores livianos que ejecutan pseudocódigo WebAssembly.

Estos contenedores no están vinculados al sistema operativo y pueden incluir código escrito originalmente en cualquier lenguaje de programación.

Para traducir WebAssembly al código de máquina de la plataforma actual, se admite conectar diferentes backends de compilación (Singlepass, Cranelift, LLVM) y motores (usando JIT o generando código de máquina). El control de acceso y la interacción con el sistema se proporcionan mediante la API WASI (WebAssembly System Interface), que proporciona interfaces de programación para trabajar con archivos, sockets y otras funciones proporcionadas por el sistema operativo.

La plataforma permite lograr un rendimiento de ejecución de aplicaciones cercano al de las compilaciones nativos.

Principales novedades de Wasmer 3.0

En esta nueva versión de Wasmer 3.0, se agregó la capacidad de crear archivos ejecutables nativos para cualquier plataforma. El comando «wasmer create-exe» se ha rediseñado por completo para convertir un archivo de código intermedio de WebAssembly en ejecutables autónomos para plataformas Linux, Windows y macOS que pueden ejecutarse sin instalar Wasmer.

Otra de las novedades que se presenta, es que se agregó la capacidad de ejecutar paquetes WAPM ubicados en el directorio wapm.io usando el comando «wasmer run». Por ejemplo, ejecutar «wasmer run python/python» descargará el paquete python del repositorio wapm.io y lo ejecutará.

La API Wasmer Rust se ha rediseñado por completo, cambiando la forma en que maneja la memoria y brindando la capacidad de almacenar objetos Wasm de forma segura en la estructura Store.

Tambien se destaca en esta nueva versión de Wasmer 3.0 la implementación mejorada de la API WASI (WebAssembly System Interface), ademas de que se corrigieron problemas en la API de WASI para trabajar con el sistema de archivos. Se han rediseñado los tipos internos utilizando WAI (WebAssembly Interfaces), lo que permitirá implementar una serie de nuevas funcionalidades en el futuro.

Ademas de ello, tambien se han simplificado los motores, ya que en lugar de motores separados para JIT, enlace dinámico y estático (Universal, Dylib, StaticLib), ahora se ofrece un motor común y carga y guarda código en el que se controla en el nivel de configuración de parámetros.

Para deserializar artefactos, se utiliza el marco rkyv, que proporciona una operación de copia cero, es decir, no requiere asignación de memoria adicional y realiza la deserialización utilizando solo el búfer proporcionado inicialmente.

De los demás cambios que se destacan de esta nueva versión:

  • El uso de rkyv aumentó significativamente la velocidad de inicio.
  • El compilador Singlepass se ha mejorado para admitir funciones de valores múltiples, mejorar la confiabilidad y agregar soporte para marcos de manejo de excepciones.
  • El conjunto de componentes wasmer-js se ha implementado para ejecutar Wasmer en un navegador web e interactuar con él desde JavaScript utilizando la biblioteca wasm-bindgen.
  • Se ha propuesto una nueva estructura MemoryView que permite leer y escribir datos en un área de memoria lineal.

Finalmente, cabe mencionar que los programas se distribuyen en forma de módulos WebAssembly ordinarios, que se pueden administrar mediante el administrador de paquetes WAPM. Wasmer también está disponible como una biblioteca que se puede usar para incrustar código WebAssembly en programas Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir y Java.

El código del proyecto está escrito en Rust y se distribuye bajo la licencia MIT y puedes consultar más al respecto, en el siguiente enlace.

El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Te puede interesar también
una-cierta-melancolia-analogica
Tecnología

Una cierta melancolía analógica

El primer computador IBM fue lanzado el 12 de agosto de 1981.Foto: Carlos López Castellón – PixabayEstaba ahí mucho antes de que yo llegara, trabajando en equipo con mi madre para conquistar juntos su título de ingeniería. Era una carcasa de IBM bastante voluminosa con uno de esos ratones perpetuamente embarazados de una pesada pelota

Leer Más >>

¿Quieres hablar con nosotros en cabina?

Nuestros Horarios en el Estudio:

9am a 11am | 12m a 1pm | 4 a 5 pm | 5 a 6pm

horario del pacifico