Hey everyone, we just published the announcement post for WASI 0.3 on the Bytecode Alliance blog: https://bytecodealliance.org/articles/WASI-0.3 The current link is just the release notes and covers only the interface-level changes. The announcement post goes into more detail on what's new in WASI 0.3, how it differs from WASI 0.2, and includes examples.
Ok, I've swapped that link in at the top and put the submitted URL ( https://github.com/WebAssembly/WASI/releases/tag/v0.3.0 ) in the toptext.
WASI 0.3
71–80 of 103 posts
Re: WASI 0.3
#72Earlier quoted context omitted.
The speaker is right. Why should "system" interfaces and interfaces from other components ever be fundamentally different?
I get that. That's not my criticism. My criticism is that you can do say that about many things. With that argument you can essentially encompass everything, which is cool in a way, but also means that the scope is at least bigger than the original - hence what the speaker says. What I worry about here is that when I think about implementing it the scope will likely grow as well. And while I very much get the wish to…
Re: WASI 0.3
#73Re: WASI 0.3
#74Earlier quoted context omitted.
it is faster, but there is unacceptable loss when passing data to/from js, definitely an area needing improvement (or having to do it less) https://hacks.mozilla.org/2026/02/making-webassembly-a-first...
Just allowing more than one arraybuffer could go a long way to help with performance. One array buffer for the wasm memory space, then an arraybuffer for each input or output argument.
Re: WASI 0.3
#75Wrong direction. WASI should be simple and stable. Initially, it was revolving around a simple Unix-like API model and it was close to perfect. Now, there is an opinionated component model which is an unneeded overcomplication that should have never been considered as part of WebAssembly spec IMHO. A real component model is a separate development and cannot be blindly tied to a particular ecosystem. Otherwise, its ma…
Note that wasm is still lean and fast - WASI is not part of core wasm, but layered on top.
That is, it is possible to implement wasm without WASI. That is also true for other wasm proposals like WasmGC. It is very possible that parts of the ecosystem will not implement certain proposals if they don't make sense there (e.g. parts of the embedded ecosystem may never add GC, etc.).
Re: WASI 0.3
#76Earlier quoted context omitted.
I disagree. We shouldn't just be copying Unix until the end of time.
less copying and more keeping in the spirit of, as it has clearly shown it is a model that is built to last
Re: WASI 0.3
#77https://news.ycombinator.com/item?id=48448083
“The Road to the WASM Component Model 1.0” (bytecodealliance.org)
95 points | by emschwartz | 99 comments
Re: WASI 0.3
#78Re: WASI 0.3
#79TL;DR: WASI 0.3.0 is the Component Model-based WASI proposal. It adds async/await-style capabilities such as actors and streams, and today is runnable in only one server-side Wasm runtime (it is not supported natively by browsers). Unfortunately it still breaks compatibility with the original WASI proposal and runtimes that supported it.
If your goal is to compile existing, unmodified C/C++ programs and libraries to WebAssembly, WASIX may be a more practical option today ( https://wasix.org/ ). Disclosure: I’m part of Wasmer, the company behind WASIX.
Re: WASI 0.3
#80Does the stackfull async implementation use the stack-switching proposal? I was under the impression that it's not implemented in most runtimes (very difficult to retrofit into existing implementations), and only available on x86_64 Linux in wasmtime.
When stack switching becomes available in all engines, it will be possible to implement this part of the component model in pure Wasm without host magic, e.g. web engines will be able to avoid the call out to JS to use JSPI.