wasm.fr

WebAssembly, ou en plus court Wasm, est un langage intermédiaire défini par le W3C et supporté par tous les navigateurs, pour améliorer les performances des applications JavaScript et ajouter du code produit avec dans différents langages de programmation.
Actualité du langage
- 1 février 2024. CheerpJ 3.0 est disponible. Cette version JVM écrite en WebAssembly et qui contient la bibliothèque OpenJDK complète permet de faire tourner des applications Java dans le navigateur, sans aucune modification. Plus d'infos sur le site. (Anglais).
- 14 novembre 2023. WasmGC, le gestionnaire de mémoire (garbage collector) est activé par défaut dans Chrome. Dans Safari 18.2.
- 24 novembre 2022. Wasmer 3.0 est disponible. Wasmer permet d'exécuter du code Wasm sans navigateur, et l'interpréter comme tout langage de programmation en fournissant un runtime pour le système. Avec cette version Wasmer peut créer des exécutables sous Windows, après Mac et Linux.. On peut utiliser l'exécutable sous d'autres machine sans wasmer.
- 19 avril 2022. Une spécification pour WebAssembly a été établie par le W3C (qui standardise aussi HTML, CSS, RSS...)
- 14 octobre 2021. Le composant .NET Webassembly dans Visual Studio 2022 compile du code C, C++, C# en wasm et cela permet l'interaction du code généré dans les différents fichiers quand ils sont utilisé par Blazor, dans le navigateur. Blazor remplace JavaScript par C# dans les applications Web.
- 2 juin 2021. Wasmer 2.0 est disponible. L'outil qui exécute un programme WebAssembly en ligne de commande devient 50% plus rapide. La liste des nouvelles fonctionnalités est donnée sur wasmer.io (lien en bas de page).
- 28 avril 2021. La Bytecode Alliance formée en 2019 par Red Hat, Intel et Mozilla entre autres, pour l'utilisation locale de WebAssembly à créé une fondation à cette cause. Après avoir été rejointe par Google, Arm, et de nombreux autres, c'est au tour de Microsoft d'arriver. Microsoft veut utiliser WASI sur le cloud avec Azure et rendre ce dernier plus sécurisé.
- 23 janvier 2021. Le runtime coté serveur de WebAssembly, Wasmer, est disponible en version 1.0. Voir plus bas dans la liste de runtimes.
- 5 décembre 2019. WebAssembly 1.0 devient une recommendation du W3C comme HTML.
- 12 novembre 2019. Annonce de l'alliance Bytecode par Intel, Mozilla, Red Hat dont le but est d'instaurer WebAssembly comme langage intermédiaire hors du navigateur. Donc comme alternative à LLVM. Le système se veut sécurisé par défaut et universellement portable.
- 27 mars 2019. Lancement de WASI, une interface aux systèmes d'exploitation standard pour utiliser WebAssembly localement indépendamment d'un navigateur. Le code binaire wasm est utilisable sur tout système sans modifications.
- 15 février 2018. Première mouture d'une spécification WebAssembly par le W3C. Il y a une interface JavaScript et une API Web pour l'utilisation avec les services en ligne.
- 3 août 2017. Création d'un groupe de travail au W3C pour définir un format standard efficace et un environnement d'exécution pour WebAssembly. Les contributions sont les bienvenues.
- 30 mai 2017. Google annonce le remplacement total de PNaCl par WebAssembly. Le premier ne sera plus supporté par Chrome OS début 2018 et tous les développements sont dorénavant consacrés à wasm. Source.
- 11 avril 2017. Le navigateur Edge de Microsoft fourni dans la Creator Update (mise à jour de Windows du 11/4/2017) supporte WebAssembly en option. Plus d'informations.
Tapez "about:flag" dans la barre d'adresse et cochez "Activer les fonctionnalités JavaScript expérimentales". - 21 mars 2017. Obsidian est le nom d'une API proposée par Mozilla pour utiliser les cartes graphiques sous WebAssembly. C'est l'équivalent de Vulkan sous WebGL.
- 9 mars 2017. WebAssembly supporté aussi par Chrome 57.
- 7 mars 2017. WebAssembly fonctionne dans Firefox 52.
- 4 mars 2017. Un backend pour WebAssembly sous GCC est annoncé. Il permet de compiler le code wasm en code binaire et le lier à un programme. (Code)
Cela offre une alternative à LLVM qui dispose déjà de la même possibilité dans la version Emscriptem. - 28 février 2017. Les éditeurs de navigateurs se sont mis d'accord sur le langage, le format binaire, l'interpréteur. Le W3C doit maintenant produire une spécification officielle de la première version du langage. (Source en anglais).
- 31 octobre 2016. Des previews apparaissent dans les navigateurs à destination des contributeurs.
- 15 mars 2016. Les fonctions principales sont définies.
- 17 juin 2015. Annonce publique de la création du nouveau langage du Web.
- Avril 2015. Le groupe WebAssembly est formé.
- 21 mars 2013. Mozilla présente Asm.js, un sous-ensemble de JavaScript, qui sera le point de départ du futur wasm.
Tutoriels
- WebAssembly.fr. Site en français pour apprendre à utiliser wasm.
- WebAssembly par MDM. Guide complet par Mozilla (créateur de Emscriptem) sur l'utilisation de wasm.
- Boost Web app with C++. (Anglais). Présentation de l'utilisation de Emscriptem et Binayen.
- WebAssembly Reference Manual. (Anglais). Description complète du langage.
Outils
- WASM3. Un interpréteur de code WebAssemby pour l'IoT.
- WebAssembly Explorer. Un compilateur interactif en ligne de C++ en wasm.
- Wasmtime. Runtime pour WebAssembly sur le poste local.
- WebAssembly Studio. Génère un projet pour différents langages qui peuvent être compilés en wasm: C, TypeScript. Le code source est compilé et le code wasm exécuté directement. Une version locale peut être utilisée avec LLVM.
- Emscriptem. Fork de LLVM qui peut produire du code JavaScript, Asm.js ou wasm.
- Binaryen. Suite d'outils pour produire du wasm à partir de C ou C++ en optimisant le code. Il a son propre langage intermédiaire, proche de wasm lui-même. Il peut aussi convertir Asm.js et le code .s de LLVM en wasm.
- AssemblyScript. Compilateur de TypeScript en wasm.
- Cervus. Utilise wasm directement avec accès au système Linux. Dispose d'un interpréteur.
- Lucet, sous Linux aussi, est un compilateur et un runtime pour des applications écrites en C.
Bibliothèques et runtimes
- Wasmer est un runtime pour WebAssembly. Vous pouvez ainsi compiler un code C en wasm et le lier à wasmer pour l'intégrer à vos applications en ligne ou sur le bureau. C'est donc une alternative à Electron. Voir Warmer Install pour savoir comment l'installer sur votre ordinateur.
- WebAssembly runtimes. Liste pour tous les langages compilables en wasm.
- WebDSP. Pour le traitement du signal vidéo et l'image. S'utilise avec JavaScript.
Documents
- WebAssembly design. Détails du langage.
- WebAssembly.org. Toutes les informations sur le langage.