WebAssembly
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 | ||
Date de première version | ||
---|---|---|
Paradigme | Orienté expression | |
Développeurs | Mozilla Foundation, Google, Microsoft, Apple, W3C | |
Dernière version | 2.0 ()[1] | |
Typage | statique | |
Influencé par | asm.js, PNaCl | |
Licence | Licence Apache | |
Site web | [1], https://github.com/WebAssembly/design | |
Extension de fichier | wast et wasm | |
modifier |
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
modifierDiffé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- « Release 2.0 », (consulté le )
- Free Pascal has now a WebAssembly back end
- 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.
- http://webassembly.org/roadmap/ Plan de développement de WebAssembly
- « LIFF + TIC-80 », sur engineering.linecorp.com
- (en) « My Haiku RISC-V port progress », sur Haiku-os.org
- (en) a3f, « bareDOOM », sur BareDoom sur Github