- Article sur le projet de l’auteur pendant la Hackweek 22 de SUSE : il a construit un unikernel capable d’exécuter WebAssembly.
- L’auteur a choisi ce projet pour plusieurs raisons, notamment les avantages potentiels de la combinaison des unikernels et de WebAssembly.
- Du point de vue des développeurs d’applications, il peut être difficile de porter ou d’écrire une application pour un unikernel, car l’application et ses dépendances doivent être prises en charge par l’unikernel cible.
- Les mainteneurs d’unikernels ont eux aussi du mal à garantir qu’une application puisse s’exécuter sans accroc sur leur plateforme, en raison de primitives système méconnues pouvant être exploitées par les applications utilisateur.
- En revanche, lorsqu’on cible la plateforme WebAssembly, les applications disposent d’un ensemble clair de fonctionnalités qui doivent être fournies par le runtime WebAssembly.
- L’auteur a utilisé le projet RustyHermit, un unikernel écrit en Rust, comme base de l’application unikernel.
- L’auteur a également rencontré des difficultés liées au runtime WebAssembly, car Wasmtime, son runtime de prédilection, n’est pas conçu pour fonctionner sur RustyHermit. Il a finalement trouvé puis utilisé wasmi, un runtime WebAssembly entièrement écrit en Rust.
- L’auteur évoque aussi l’utilisation de la proposition WebAssembly Component Model dans Spiderlightning, qui permet de fournir des fonctionnalités aux invités WebAssembly et au host d’utiliser les fonctionnalités fournies par les invités WebAssembly.
- L’auteur a dû étendre
wit-bindgen, un outil CLI qui génère du code host/invité à partir de fichiers .wit, afin de prendre en charge le runtime WebAssembly wasmi.
- L’auteur conclut son billet avec un enregistrement d’une application unikernel exécutant la démo
http-server de Spiderlightning, et promet d’aborder ensuite Rust async, Redis et quelques erreurs dans la suite de son parcours.
1 commentaires
Avis Hacker News