--- title: WebAssembly slug: WebAssembly tags: - Landing - WebAssembly - wasm translation_of: WebAssembly ---
WebAssembly est un nouveau type de code qui peut être exécuté dans un navigateur web moderne. C'est un langage bas niveau, semblable à l'assembleur permettant d'atteindre des performances proches des applications natives (par exemple écrites en C/C++) tout en fonctionnant sur le Web. WebAssembly est conçu pour fonctionner en lien avec JavaScript.
WebAssembly représente une avancée fondamentale de la plateforme web. Il permet d'exécuter du code (éventuellement écrit depuis différents langages) sur le Web avec des performances similaires aux applications natives.
WebAssembly est conçu pour être utilisé de pair avec JavaScript. Grâce à l'API JavaScript WebAssembly, on peut charger des modules WebAssembly au sein d'une application JavaScript et partager des fonctionnalités entre les deux. Cela permet de tirer parti des performances de WebAssembly et de la flexibilité de JavaScript, même si on ne sait pas écrire du code WebAssembly.
WebAssembly est conçu comme un standard web par le groupe communautaire du W3C pour WebAssembly auquel participe les différents éditeurs de navigateur.
WebAssembly.Module
contient du code WebAssembly, sans état, qui a déjà été compilé par le navigateur et qui peut être partagé dans les web workers, mis en cache dans IndexedDB et instancié à plusieurs reprises.WebAssembly.Instance
est une instance exécutable (disposant d'un état) d'un Module
. Les objets Instance
contiennent toutes les fonctions WebAssembly exportées qui permettent d'utiliser du code WebAssembly via du code JavaScript.WebAssembly.instantiate()
représente l'API principale pour compiler et instancier le code WebAssembly. Cette méthode renvoie un Module
ainsi que sa première Instance
.WebAssembly.
Memory
est un tableau {{jsxref("Objets_globaux/ArrayBuffer", "ArrayBuffer")}} redimensionnable qui contient les octets de mémoire brute auxquels on peut accéder via une Instance
.WebAssembly.
Table
est un tableau typé contenant des valeurs opaques et qui peut être redimensionné. On peut accéder aux valeurs via un objet Instance
.CompileError
.LinkError
.RuntimeError
.Spécification | État | Commentaires |
---|---|---|
{{SpecName('WebAssembly JS')}} | {{Spec2('WebAssembly JS')}} | Brouillon de définition initiale pour l'API JavaScript. |
{{Compat("javascript.builtins.WebAssembly")}}