WebAssembly devient un standard W3C

WebAssembly a récemment rejoint la liste des standards W3C afin de compléter JavaScript dans le but d’améliorer l’exécution des applications web.

Le consortium a publié la spécification portant sur le cœur de WebAssembly : ce langage de représentation intermédiaire (bytecode) exploite un format proche de l’assembleur.

Il sert de cible de compilation afin de permettre l’exécution de langages de haut niveau, plus précisément C, C++ et Rust, dans les applications web à une vitesse proche du natif.

Le code créé est ainsi universel et portable. Dans la plupart des cas, sa vitesse de chargement et d’exécution dans les navigateurs est plus rapide que JavaScript.

Pour autant, ces langages sont complémentaires et ne se substituent pas l’un à l’autre. WebAssembly n’étant pas directement exécutable, il fonctionne de concert avec JavaScript et fait partie de son compilateur. Il reprend ainsi le principe d’asm.js, mais avec un format binaire.

Au-delà des navigateurs

Ces deux langages partagent aussi un même modèle de sécurité (exécution en bac à sable), ce qui est à la base des travaux de la Bytecode Alliance.

Ce groupement, qui comprend notamment Intel, Red Hat et Mozilla, pousse l’usage de WebAssembly hors des navigateurs. Dans ce cas précis, afin de sécuriser les projets de développement en proposant une protection équivalente à celle que les OS garantissent à travers l’isolation des processus, avec pour valeur ajoutée une empreinte mémoire optimisée.

Du côté du W3C, on liste, parmi les chantiers à court terme :

  • L’ajout de la prise en charge du threading
  •  Permettre à du code de faire référence directement à des objets hôtes
  • Activer les fonctions d’appel sans utiliser d’espace de pile supplémentaire
  • Interagir avec JavaScript en chargeant les exécutables WebAssembly sous forme de modules ES6

À plus long terme, on note le projet d’intégrer un récupérateur de mémoire qui permettra d’ouvrir WebAssembly à d’autres langages tels Go et Python.

A noter également le projet WASI, qui a pour objectif de créer une interface commune aux systèmes d’exploitation pour l’exécution de code WebAssembly.

Source : https://www.silicon.fr/webassembly-standard-329809.html

Autres articles …