I just published a new encoding format "WAVE: Web Assembly Value Encoding" (and matching wasm-wave
crate). WAVE is a human-oriented representation of component model values. The README gives a good overview of the format. I'd love feedback (and PRs!) on the format and eventually would like to donate it to be used for things like wasmtime run --invoke 'add(1, 2)'
.
Thanks to @Dan Gohman for a PR adding e.g. \u{1F44B}
unicode escapes, written within ~2 hours of learning that WAVE existed. :smile:
I've added a bunch of functionality to this and built this poc for using it to invoke component exports: https://github.com/lann/wave-tank
$ wave-tank example.wasm 'hello-world(false, "BA")'
hello-world(false, some("BA")) -> "Hello, BA!"
A proposal to use WAVE for wasmtime run --invoke
: https://github.com/bytecodealliance/wasmtime/issues/7326
i really like the sound of this proposal!
as far as how to reference things that arent top level exports, or the syntax by which you do- i think we can follow the rule of only requiring an identifier if its ambigious
so if a component exports foo:bar/baz.run
and wasi:cli/run.run
then you have to call it by run.run
. plain run
will give an error as being ambigious
so allow people to leave off the namespace, package version, package name, and interface name if they like
Last updated: Nov 26 2024 at 01:30 UTC