1# llimphi-wasm-wasi23Runs **console WASI apps** over wasmi.
45The catalog is not a trick: besides the Tier 3 apps (UI, our own
6`wasm_view → WireNode` ABI), the bulk of public WASM is **command-line
7programs** compiled to `wasm32-wasi`: they import `wasi_snapshot_preview1`, have a
8`_start` and write to stdout. This crate runs them: a minimal WASI preview1 shim
9instantiates the module, captures its stdout/stderr and returns the output plus
10the exit code. It is not a GUI — it is a console, which is exactly what those
11modules are.
1213Honest scope: it covers the subset a typical CLI tool uses (write, read stdin,
14args, env, clock, random, exit). Anything touching a **real filesystem or
15sockets** is absent (those imports are not linked: a module using them traps at
16instantiation — the same physical boundary as the rest of the runtime). The
17component model and web apps (wasm-bindgen/DOM) are another story: they need a
18different runtime or a browser (that is `puriy`).
1920---
2122Part of **llimphi** — see [llimphi](../README.md).
README.md
llimphi-wasm-wasi
Runs console WASI apps over wasmi.
The catalog is not a trick: besides the Tier 3 apps (UI, our own
wasm_view → WireNode ABI), the bulk of public WASM is command-line
programs compiled to wasm32-wasi: they import wasi_snapshot_preview1, have a
_start and write to stdout. This crate runs them: a minimal WASI preview1 shim
instantiates the module, captures its stdout/stderr and returns the output plus
the exit code. It is not a GUI — it is a console, which is exactly what those
modules are.
Honest scope: it covers the subset a typical CLI tool uses (write, read stdin,
args, env, clock, random, exit). Anything touching a real filesystem or
sockets is absent (those imports are not linked: a module using them traps at
instantiation — the same physical boundary as the rest of the runtime). The
component model and web apps (wasm-bindgen/DOM) are another story: they need a
different runtime or a browser (that is puriy).