I realize this might a slightly controversial ask, but I'm trying to get a list of popular WASI runtimes to compare their CLIs. I'm trying to see if there's any commonality in how they specify environment variables and host:local directory mappings. I've already checked wasmtime, wasmedge, and wazero out (wasmtime uses --mapdir
, the other two use --dir
; all three use --env
). WAMR/iwasm doesn't seem to suport mapping directories to a different location within the runtime.
Most wasm runtimes are embedded in Javascript. You could try like the one in chrome
I think he is currently only investigating WASI (not WASM) runtimes that can run server-side WASI with virtualization, the browser wasm is boring, we all know what it supports and what it doesn't ;)
wasmtime, wasm3, wamr, wazero, wasmedge, wasmer, node, deno? are the ones off the top of my head, each one doing some "version" of wasi - up to you to explore to what extent.
if you want more, I can find them, because there are a lot of experimental and academic ones as well.
WaVe, Wizard, F<number goes here>, ....
For browser wasi there is the runno.dev
JS API: https://runno.dev/docs/wasi/#md:quickstart
And declarative web component API: https://runno.dev/articles/wasi-web-component
wasi-virt could also be in the list of clis setting up mappings for wasi apis
Ramon Klass said:
I think he is currently only investigating WASI (not WASM) runtimes that can run server-side WASI with virtualization
Correct! This is specifically about seeing what it would take to support various WASI runtimes for building CPython instead of hard-coding wasmtime (as I'm doing right now out of laziness).
wasmtime is about to support preview 2 wasi, jco will soon, wamr will take a bit more, outside of that I have no knowledge at this time.
I think possibly more interesting is the ability for a runtime that supports preview 2 to also run preview 1, which is something that the ecosystem is making possible.....
I looked at wasmtime, wazero, wasmer, wasmedge, wasm3, and WAMR/iwasm. The last two don't have all the CLI flags I was looking for. For for the 4 that did, they all support --env
, but vary on how to map a guest directory to a host directory (there's --mapdir
, --dir
via host:guest
format, and --mount
among them).
right, I'll reach out to the wamr team about these flags.
FYI wasmtime 14 is switching to --dir
according to https://github.com/bytecodealliance/wasmtime/pull/6925, although they are using ::
as the path separator while wasmedge uses :
I've opened an issue for this for what syntax to pick for Wasmtime
Last updated: Dec 23 2024 at 12:05 UTC