Il y a quelques années, Microsoft a présenté une VM allégée nommée Hyperlight. Elle revient sur le devant de la scène avec une version dédiée pour les charges de travail en WebAssembly. Ainsi, les modules et composants Wasm peuvent être exécutés dans un bac à sable soutenu par une VM. Nommé Hyperlight Wasm, le service peut faire fonctionner en toute sécurité du code Wasm non fiable ou tiers au sein d'une VM avec une latence et un coût très faibles. Le service s'appuie sur Hyperlight, une bibliothèque Rust open source qui sert à exécuter de petites fonctions intégrées à l'aide d'une protection basée sur l'hyperviseur (que ce soit du Microsoft ou KVM pour Linux). Les charges de travail de Hyperlight Wasm peuvent être lancées dans des langages compilés tels que C, Go et Rust, ainsi que dans des langages interprétés tels que Python, JavaScript et C#. Mais il est nécessaire d’inclure un runtime du langage dans l'image.

La page GitHub du projet précise que la VM allégée reste expérimentale et n'est pas considérée comme prête pour la production par ses développeurs. Cette page contient également des instructions pour construire avec cette technologie. Hyperlight Wasm tire parti de WASI (WebAssembly System Interface) et du modèle de composants WebAssembly. Avec elle, les développeurs peuvent implémenter un petit ensemble d'abstractions performantes de haut niveau dans presque tous les environnements d'exécution et fournir un espace d'exécution rapide, protégé par le matériel, mais largement compatible. Construire Hyperlight avec un runtime WebAssembly permet à n'importe quel langage de programmation de s'exécuter dans une micro-VM Hyperlight protégée sans aucune connaissance préalable de la bibliothèque Rust.

Une vocation à être utilisée sur les puces Arm64

« Les auteurs de programmes compilent simplement pour la cible wasm32-wasip2, ce qui signifie que les programmes peuvent utiliser des runtimes comme Wasmtime ou Jco », a affirmé Microsoft. Les applications peuvent également être exécutés sur un serveur pour Nginx Unit, Spin, WasmCloud ou, désormais, Hyperlight Wasm. Dans un scénario idéal, les développeurs n'auraient pas besoin de réfléchir à la durée d'exécution de leur code pendant qu'ils le développent. De plus, selon Microsoft, la combinaison de Hyperlight avec WebAssembly offre plus de sécurité et de performance que les VM traditionnelles avec moins de travail. « Wasmtime fournit de solides limites d'isolation pour les charges de travail Wasm par le biais d'un bac à sable défini par logiciel », a ajouté la firme de Redmond.

Un fonctionnement de Hyperlight Wasm sur les processeurs Arm64 est envisagé. Jusqu'à présent, la planification s'est concentrée sur l'utilisation de WASI sur Hyperlight pour la portabilité entre les systèmes d'exploitation et les machines virtuelles. Mais les applications Wasm sont portables entre différents jeux d'instructions. De plus, Hyperlight Wasm sera bientôt étendue avec des liaisons par défaut pour certaines interfaces WASI.