--- title: WebAssembly slug: WebAssembly tags: - Aterrizaje - WebAssembly - wasm translation_of: WebAssembly ---
WebAssembly es un nuevo tipo de código que puede ser ejecutado en navegadores modernos — es un lenguaje de bajo nivel, similar al lenguaje ensamblador, con un formato binario compacto que se ejecuta con rendimiento casi nativo y provee un objetivo de compilación para lenguajes como C/C++ y Rust que les permite correr en la web. También está diseñado para correr a la par de JavaScript, permitiendo que ambos trabajen juntos.
WebAssembly tiene grandes implicaciones para la plataforma web — provee una forma de correr código escrito en múltiples lenguajes en la web a una velocidad casi nativa, con aplicaciones cliente corriendo en la web que anteriormente no podrían haberlo hecho.
WebAssembly esta diseñado para complementar y correr a la par de JavaScript — usando las APIs WebAssembly de JavaScript, puedes cargar módulos de WebAssembly en una aplicación JavaScript y compartir funcionalidad entre ambos. Esto te permite aprovechar el rendimiento y poder de WebAssembly y la expresividad y flexibilidad de JavaScript en las mismas aplicaciones, incluso si no sabes cómo escribir código WebAssembly.
Y lo mejor es que está siendo desarrollado como un estándar web a través del grupo de trabajo de WebAssembly del W3C y su grupo comunitario con las participación activa de todos los principales fabricantes de navegadores.
WebAssembly.Global
representa una instancia variable global, accesible desde JavaScript e importable/exportable a través de una o más instancias de {{jsxref("WebAssembly.Module")}}. Esto permite el enlace dinámico de varios módulos.WebAssembly.Module
contiene código WebAssembly sin estado que ha sido ya compilado por el navegador y puede ser compartido con workers e instanciado varias veces.WebAssembly.Instance
es una instancia ejecutable y con estado de un Module
. Los objetos Instance
contienen todas las funciones exportadas de WebAssembly que permiten llamar a código WebAssembly desde JavaScript.WebAssembly.instantiateStreaming()
es la principal API para compilar e instanciar código WebAssembly, retornando tanto un Module
como su primera Instance
.WebAssembly.
Memory
es un {{jsxref("Global_objects/ArrayBuffer", "ArrayBuffer")}} redimensionable que contiene los bytes de memoria accedidos por una Instance
.WebAssembly.
Table
es un arreglo tipado redimensionable de valores opacos, como referencias a funciones, que son accedidos por una Instance
.CompileError
de WebAssembly.LinkError
de WebAssembly.RuntimeError
de WebAssembly.Especificación | Estado | Comentarios |
---|---|---|
{{SpecName('WebAssembly JS')}} | {{Spec2('WebAssembly JS')}} | Borrador inicial de la definición de la API de JavaScript. |
{{Compat("javascript.builtins.WebAssembly")}}