1# llimphi-wasm-runner23The host side of Tier 3 WASM apps.
45`WasmGuest` loads a `.wasm` following the `llimphi-wasm-app-sdk` ABI, instantiates
6it with wasmi and runs its Elm loop:
781. `wasm_init` builds the guest's `Model` (it lives in the instance).
92. `wasm_view` returns a serialized `WireNode`; we deserialize and cache it.
103. `wire_to_view` materializes it into a real Llimphi `View<RunnerMsg>`.
114. A click emits `RunnerMsg::Guest(bytes)`; `WasmGuest::dispatch` bounces those
12 bytes back to `wasm_dispatch` and refreshes the view.
1314The host keeps a single live `Store` per app, so the `Model` persists between
15frames — exactly Llimphi's Elm contract, only with the transition running on the
16other side of the WASM boundary.
1718It is the Linux-side twin of wawa's WASM app executor (`sys_render_frame` +
19capabilities by physical boundary): the same spirit, another host.
2021---
2223Part of **llimphi** — see [llimphi](../README.md).
README.md
llimphi-wasm-runner
The host side of Tier 3 WASM apps.
WasmGuest loads a .wasm following the llimphi-wasm-app-sdk ABI, instantiates
it with wasmi and runs its Elm loop:
wasm_init builds the guest's Model (it lives in the instance).
wasm_view returns a serialized WireNode; we deserialize and cache it.
wire_to_view materializes it into a real Llimphi View<RunnerMsg>.
A click emits RunnerMsg::Guest(bytes); WasmGuest::dispatch bounces those
bytes back to wasm_dispatch and refreshes the view.
The host keeps a single live Store per app, so the Model persists between
frames — exactly Llimphi's Elm contract, only with the transition running on the
other side of the WASM boundary.
It is the Linux-side twin of wawa's WASM app executor (sys_render_frame +
capabilities by physical boundary): the same spirit, another host.