L’intérêt pour WebAssembly progresse si l’on en croit les dernières annonces autour de la Bytecode Alliance. Cette dernière a été formée par Fastly, Intel, Mozilla et Red Hat pour que le langage de bas niveau puisse trouver sa place en dehors du navigateur, notamment vers le cloud et l’edge computing. Aujourd’hui, cette association se transforme en organisation à but non lucratif et voit l’arrivée de plusieurs autres membres et non des moindres. Microsoft, ARM, DFINITY Foundation, Embark Studios, Google, Shopify et l'Université de Californie à San Diego sont maintenant parties prenantes de la Bytecode Alliance.
Pour mémoire, WebAssembly est un type de code conçu pour être une cible de compilation efficace pour les langages source de bas niveau tels C, C ++, Rust (notamment pour sa sécurité mémoire), etc. Il fournit un moyen d'exécuter un code écrit dans divers langages sur le web à une vitesse proche du natif, avec des applications clientes exécutées sur le web qui auparavant n'auraient pas pu être réalisées.
Résoudre un ensemble de compromis contrariants
L’existence de la Bytcode Alliance est résumée par Bobby Holley, ingénieur émérite chez Mozilla et membre du conseil d’administration de l’organisation, « le développement d’application est aujourd’hui un ensemble de compromis contrariants. Si vous voulez construire quelque chose de grand, ce n’est pas réaliste de bâtir chaque composant depuis zéro. Mais si on s’appuie sur une chaîne complexe de composants d’autres parties, un défaut peut compromettre la sécurité et la stabilité de l’ensemble du programme ». La Bytecode Alliance, fondée en 2019, considère WebAssembly comme un moyen de rendre le code composable, sûr et rapide sans sacrifices.
L’organisation voit WebAssembly et divers projets d'infrastructure de code connexes comme WebAssembly System Interface (WASI), WebAssembly Micro Runtime (WAMR) et Lucet, comme un moyen de traiter les gestionnaires de paquets difficiles à sécuriser comme npm, PyPI et crates.io, qui constituent la base du développement de logiciels modernes. Ces registres de paquets sont essentiellement des bases de données de code déjà écrit que les développeurs peuvent importer dans leurs propres projets. Cela permet de gagner énormément de temps mais peut entraîner des problèmes de sécurité si les modules importés présentent des failles par inadvertance ou délibérément. WebAssembly vise à sécuriser ces bibliothèques grâce à des nano-processus, qui créent des bacs à sable isolés et efficaces en mémoire pour chaque module ou bibliothèque malveillante.