El WASI de Mozilla lleva a WebAssembly más allá del navegador

Mozilla ha anunciado un nuevo esfuerzo de estandarización para proporcionar una forma coherente para que las aplicaciones de ensamblaje web interactúen con cualquier sistema operativo en el que se ejecuten.

Apodado WASI, o WebAssembly System Interface, el proyecto experimental actualmente proporciona a las aplicaciones WebAssembly un conjunto de abstracciones para realizar tareas como leer y escribir archivos y E / S de red. Cada host de WebAssembly implementa WASI para la plataforma en la que se ejecuta.

Una parte clave de WASI, según Mozilla, es que es independiente de la plataforma. Los idiomas como C proporcionan una biblioteca estándar para interactuar con el sistema de archivos y la memoria, por ejemplo. De manera similar, WASI puede considerarse como una biblioteca estándar para abstracciones multiplataforma como archivos o sockets de red.

Otro elemento clave de WASI es que estos comportamientos se encuentran en un espacio aislado. Un ejemplo dado por Mozilla es el acceso a archivos. Una llamada administrada por WASI para abrir un archivo solo funcionaría para los directorios en los que la aplicación tiene permiso explícito para leer o escribir. Esos permisos también podrían estar limitados por módulo.

El uso de WASI requerirá la recompilación de WebAssembly existente para que funcione correctamente, pero WebAssembly aún está lo suficientemente adelantado en su desarrollo para que un cambio como este no sea perjudicial. En este momento, dos de las principales cadenas de herramientas para escribir aplicaciones WebAssembly, Rust y C / C ++, admiten WASI. Ambos aprovechan la capacidad de LLVM para generar código de ensamblaje web para lograr esto.

Para ejecutar aplicaciones habilitadas para WASI, actualmente necesita más que soporte de WebAssembly en el navegador. Un método es utilizar un polyfill basado en navegador, de la misma manera que se pueden usar las características experimentales de JavaScript. Otra es a través de wasmime, un tiempo de ejecución de ensamblaje web independiente que no utiliza un navegador. Un tercero es otro tiempo de ejecución independiente, Lucet, creado a través del sistema de generación de código Cranelift de Mozilla. Mozilla espera que, con el tiempo, los navegadores admitan WASI de forma nativa.

Deja un comentario

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