I'm interested in seeing (and possibly making) a "feature matrix" showing, for every programming language, what features of wasm/wasi their toolchains currently support. Does such a thing already exist? Would anyone be interested in collaborating? I'm thinking of something like caniuse.com
For wasm features in engines, there is https://webassembly.org/roadmap/
For WASI, in both toolchains and engines, my own opinion is: it's too early for this. Progress in WASI for the next year or so will not be monotonic. It would have been nice and user-friendly for WASI to have been instantly stable and perfectly future-compatible. The underlying platform underneath WASI changed in fundamental ways, and we learned a lot of lessons from WASI itself, so we have a lot of fundamental changes to make.
this is a great start, thanks. I admit that I'm not fully cognizant of the dividing line where wasm ends and where wasi begins (e.g. socket support belongs to wasi, not wasm, so it doesn't show up in this table). is there a document somewhere summarizing what changes to wasi are anticipated?
This presentation lays out a high-level roadmap.
Figuring out where Wasm ends and where WASI begins has been one of the ongoing challenges. There is no a-priori answer. Some things we used to think were part of WASI have moved into the module-linking and interface-types layers, which have now been incorrporated into a component model.
For example, WASI had started to develop a concept of streams, but that's since been moved into the component model, because there are advantages to having streams be a language feature rather than a library feature.
this is great info, thanks
There's a lot going on, and admittedly not a lot of documentation right now. That will improve over time, but in the present, I can at least offer to answer any questions that anyone has.
I want to shout out to Fermyon folks who have dedicated their time to maintain this programming language guide for wasm https://www.fermyon.com/wasm-languages/webassembly-language-support
Last updated: Dec 23 2024 at 12:05 UTC