Hackweek 22 at SUSE allowed employees to work on personal projects, and the author chose to build a unikernel that runs WebAssembly. The application developer faces challenges when porting an application to a unikernel, as it requires support for the target unikernel and possible patching. On the other hand, targeting a WebAssembly platform provides clear capabilities for the application, regardless of how those capabilities are implemented on the host side. The author used RustyHermit as the foundation for their unikernel application and found wasmi, a pure Rust WebAssembly runtime, that works well with RustyHermit. The author also utilized the WebAssembly Component Model proposal to offer capabilities to the WebAssembly guests and allow the host to consume those capabilities. Scaffolded code using wit-bindgen was implemented for the host side, with the code generated by wit-bindgen performing low-level operations using the WebAssembly runtime. In summary, the author shared their progress in building a unikernel that runs WebAssembly and provided a recording of the unikernel application running the Spiderlightning http-server demo.
(Note: No controversial or surprising information was found.)
https://flavio.castelli.me/2023/02/07/building-a-unikernel-that-runs-webassembly---part-1/