WebAssembly

Format de bytecode efficace portable pour compiler le code machine pour le Web

WebAssembly, abrégé Wasm, est un standard du World Wide Web pour le développement d’applications. Il est conçu pour remplacer JavaScript avec des performances supérieures. Le standard consiste en un bytecode, sa représentation textuelle et un environnement d'exécution dans un bac à sable compatible avec JavaScript. Il peut être exécuté dans un navigateur Web et en dehors. WebAssembly est standardisé dans le cadre du World Wide Web Consortium.

WebAssembly
Logo.

Date de première version Voir et modifier les données sur Wikidata
Paradigme Orienté expression
Développeurs Mozilla Foundation, Google, Microsoft, Apple, W3C
Dernière version 2.0 ()[1]Voir et modifier les données sur Wikidata
Typage statique
Influencé par asm.js, PNaCl
Licence Licence Apache
Site web [1], https://github.com/WebAssembly/design
Extension de fichier wast et wasmVoir et modifier les données sur Wikidata

Comme WebAssembly ne spécifie qu'un langage de bas niveau, le bytecode est généralement produit en compilant un langage de plus haut niveau. Parmi les premiers langages pris en charge figurent Rust avec le projet/module (crate) wasm-bindgen ainsi que le C et C++, compilés avec Emscripten (basé sur LLVM). De nombreux autres langages de programmation possèdent aujourd'hui un compilateur WebAssembly, parmi lesquels : Ada, C#, Go, Java, Lua, OCaml, Python, Ruby, Fortran ou Pascal[2].

Les navigateurs Web compilent le bytecode wasm dans le langage machine de l'hôte sur lequel ils sont utilisés avant de l'exécuter.

Moteurs de jeux

modifier

Différents moteurs de jeu utilisent WebAssembly pour proposer une version Web Rapide des programmes les utilisant.

Sa présentation officielle a eu lieu le et depuis sa première démonstration (), il est possible de jouer à Unity Angry Bots à travers son navigateur en WebAssembly. Le , il a atteint le jalon Browser Preview[3],[4].

La fantasy console open source TIC-80 comporte également une version WebAssembly[5].

TinyEMU de Fabrice Bellard (également auteur de QEMU et ffmpeg) est un émulateur léger RISC-V, il est utilisé pour le portage de Haiku (remake libre de BeOS)[6]. Il est notamment utilisé dans BareDoom, un port de Doom sur RISC-V utilisant le système minimal Barebox. Pour la démonstration, il fonctionne lui même sur TinyEMU recompilé en WebAssembly pour fonctionner dans un navigateur[7].

Notes et références

modifier
  1. a et b « Release 2.0 », (consulté le )
  2. Free Pascal has now a WebAssembly back end
  3. http://www.developpez.com/actu/106127/WebAssembly-a-atteint-le-milestone-Browser-Preview-et-permet-de-compiler-des-modules-WebAssembly-depuis-des-fichiers-sources-C-C-plusplus/ WebAssembly a atteint le milestone Browser Preview.
  4. http://webassembly.org/roadmap/ Plan de développement de WebAssembly
  5. « LIFF + TIC-80 », sur engineering.linecorp.com
  6. (en) « My Haiku RISC-V port progress », sur Haiku-os.org
  7. (en) a3f, « bareDOOM », sur BareDoom sur Github

Liens externes

modifier