El mes pasado compartimos aquí en el blog sobre la noticia de que Mozilla, Fastly, Intel y Red Hat se habían unido para desarrollar las tecnologías que hacen de WebAssembly (si quieres conocer más al respecto sobre la noticia, puedes consultarla en este enlace) y ahora pocas semanas después de esa noticia el Consorcio W3C ha anunciado que la tecnología WebAssembly se ha convertido en el estándar recomendado. Al habilitar JIT para WebAssembly, puede alcanzar niveles de rendimiento cercanos al código nativo. Entre las tareas principales de WebAssembly está la provisión de portabilidad, previsibilidad del comportamiento e identidad de la ejecución del código en diferentes plataformas.
Recientemente, WebAssembly también está avanzando como una plataforma universal para ejecutar código de manera segura en cualquier infraestructura, sistema operativo y dispositivo, no limitado a los navegadores.
W3C ha estandarizado tres especificaciones relacionadas con WebAssembly:
⚫WebAssembly Core: Se define como una máquina virtual de bajo nivel que imita de cerca la funcionalidad de muchos microprocesadores en los que se ejecuta. Ya sea a través de la compilación o interpretación Just-In-Time, el motor de WebAssembly puede funcionar a casi la velocidad del código compilado para una plataforma nativa.
Un recurso .wasm es análogo a un archivo .class de Java en el sentido de que contiene datos estáticos y segmentos de código que operan sobre esos datos estáticos. A diferencia de Java, WebAssembly generalmente se produce como un objetivo de compilación de otros lenguajes de programación como C / C ++ y Rust.
⚫WebAssembly Web API: Define una interfaz de programación basada en el mecanismo Promise para solicitar y ejecutar recursos “.wasm”. El formato de recursos de WebAssembly está optimizado para iniciar la ejecución sin esperar a que el archivo se cargue por completo, lo que mejora la capacidad de respuesta de las aplicaciones web.
⚫Interfaz JavaScript de WebAssembly: Proporciona una API para integrarse con JavaScript. Le permite obtener valores y pasar parámetros a las funciones de WebAssembly. La ejecución de WebAssembly corresponde al modelo de seguridad de JavaScript y toda interacción con el sistema principal se lleva a cabo de manera similar a la ejecución del código JavaScript.
En el futuro, está previsto preparar especificaciones para funciones de WebAssembly como:
⚫Multithreading con memoria compartida y acceso a memoria atómica.
⚫Operaciones vectoriales basadas en SIMD, que permiten paralelizar la ejecución de ciclos.
⚫Tipos de referencia para referencias directas a objetos del código de WebAssembly.
⚫Capacidad para llamar a funciones sin gastar espacio adicional en la pila.
⚫Integración con módulos ECMAScript: la capacidad de cargar código de WebAssembly desde JavaScript como módulos que cumplen con la especificación ECMAScript 6.
⚫El modo de trabajo con el recolector de basura.
⚫Interfaces de depuración.
⚫WASI (WebAssembly System Interface): API para la interacción directa con el sistema operativo (API POSIX para trabajar con archivos, sockets, etc.).
Fuente : linuxadictos
- Visto: 569

