WebAssembly 3.0 : mémoire 64 bits, primâtes JS, GC

Par:
francoistonic

mer, 15/10/2025 - 09:30

Les spécifications de Wasm 3.0 sont désormais complètes et publiées. Wasm 3 va faire un bond en avant important avec l'adressage mémoires 64 bits. Il sera possible d'utiliser i64 à la place de l'adressage i32. Cette espace permettra de dépasser les 4 Go de mémoires pour les environnements et applications Wasm. Autre nouveauté, les mémoires multiples. En réalité, les apps Wasm peuvent déjà utiliser plusieurs objets en mémoire et donc plusieurs espaces d'adressage mais jusqu'à présent, ce mécanisme était relativement complexe. Un même objet peut déclarer et utiliser plusieurs espaces mémoires et y accéder. 

Attention, Safari est comme toujours en retard : pas de Memory64, de JS String Builtins, de mémoire multiple...

Quelques autres nouveautés :

- Garbage collection : une nouvelle forme de stockage gérée par le runtime via le ramasse-miette. 

- évolution de l'architectue : Wasm 3 introduit WASI preview 3 et le modèle composant. Le Component Module apporte une autre structure plus modulaire tout en appartant une couche d'interface agnostique aux langages. WASI est le WebAssembly System Interface qui rassemble des API pour Wasm. Il fournit une interface standard et sécurisée aux applications écrites en différents langages. Cette approche doit apporter une portabilité des composants et donc des apps

- la sécurité est un point sensible suite à la multiplication des vulnérabilités des moteurs JS et des navigateurs. Wasm doit à la fois vérifier les permissions et avoir un environnement isolé par sandbox et bien séparé les modules

- Wasm devient enfin plus fluide avec Swift. La version 6.2 du langage introduit le WebAssembly SDK officiel. 

- meilleur support des instructions SIMD

- JS String Builtins : mécanisme pour supporter les primitives JavaScript pour une meilleure effiacité sur WebAssembly

Comme toujours, il faut vérifier le support des fonctions Wasm navigateur par navigateur :

Pour en savoir plus : https://webassembly.org/news/2025-09-17-wasm-3.0/