Comment by jauntywundrkind
Comment by jauntywundrkind 8 days ago
I can't wait to see what attempts like this might look like after wasm components start becoming real(-er).
I have huge respect for unikernel designs, and this looks amazingly festureful. & Yet… I don't know why it matters to me as much as it does, but I want so very much for wasm to be useful for more than one big precompiled app.
There's all sorts of work going into wasi preview3 right now, to allow sync and async code to co-exist. Once that happens, it feels like wasm will finally have all the necessary ingredients down to be an everything runtime (although I'd hoped the host-object bridging was going to get more love too, & it's not clear to me that there's any itnent to go beyond js-based bridges like rust web-sys, on and on).
I hope we see more interest in wasm runtimes being used to host more dynamic sub environments, to host not just one amazing process but many processes. The promise of wasm components is to give us: standard, portable, lightweight, finely sandboxed, cross-language, compositional module (according to the wonderful talk linked below), and it seems so near, but this status quo of it being used so extensively in unikernel like applications, needing everything compiled ahead of time, feels like the area I want to see wasm expanding into not as a specification (the spec seems there!) but as a practicable doable thing, like what I want wasm components to be good for. Not just a distribution format but a runtime capability.
What is a Component (and Why) https://youtu.be/y3x4-nQeXxc
I started on a Rust app that uses SDL3 and lets you script it via embedded V8[1]. But I'm very seriously tempted to fork it and embed wasmtime or wasmi and let you script it in anything, and include a few wasm compilers into the app for convenience so you just give it a file and it does the rest. Mainly because of the speed of wasmtime and wasmi compared to alternatives[2]. But my biggest concern is that this isn't adding any real convenience. You still have to set up whole code environments, which defeats the purpose of scripting it. Still, it's such a neat idea that I don't want to not do it, and I just might.
[1] https://sdegutis.github.io/blog/dear-everyone-hire-me-to-mak...
[2] https://github.com/khvzak/script-bench-rs