Llegamos a ustedes gracias a:



Noticias

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

[29/03/2019] Mozilla ha anunciado un nuevo esfuerzo de estandarización para proporcionar una forma coherente de que las aplicaciones WebAssembly interactúen con cualquier sistema operativo en el que se ejecuten.

Apodado WASI, o Interfaz de sistema WebAssembly, el proyecto actualmente experimental 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 lenguajes como C proporcionan una biblioteca estándar para interactuar con el sistema de archivos y la memoria, por ejemplo. Del mismo modo, WASI puede considerarse como una biblioteca estándar para abstracciones entre plataformas, como archivos o sockets de red.

Otro elemento clave de WASI es que estos comportamientos están en un cajón de arena. Un ejemplo dado por Mozilla es el acceso a los archivos. Una llamada gestionada por WASI para abrir un archivo solo funcionaría para los directorios desde los que la aplicación tiene permiso explícito para leer o escribir. Estos permisos también pueden ser limitados por módulo.

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

Para ejecutar aplicaciones habilitadas para WASI, actualmente necesita más que soporte para WebAssembly en el navegador. Un método es usar un polígrafo basado en navegador, de la misma manera que se pueden usar las características experimentales de JavaScript. Otra es por medio de wasmtime, un tiempo de ejecución independiente de WebAssembly que no utiliza un navegador. Un tercero es otro tiempo de ejecución independiente, Lucet, construido mediante el sistema de generación de código Cranelift de Mozilla. Mozilla espera que con el tiempo los navegadores soporten WASI de forma nativa.