WASI (WebAssembly System Interface) is a standard interface for connecting WebAssembly (Wasm) modules to services supplied by a host. It helps take Wasm beyond a browser-and-JavaScript setting: a compatible runtime can run a module as an executable or make it available to another application. section 10.0 section 10.1
Keep the module, interface, and runtime separate:
- A Wasm module contains compiled code, such as a library or executable. section 10.0
- An interface defines how the host and module communicate. Code that fulfills the expected interface can be exchanged without changing the host application. section 10.1
- A runtime executes the module. WasmEdge is one runtime implementation with an SDK for applications that consume Wasm. section 10.8
Refactor without replacing the host
A CLI search tool can consume Wasm through the WasmEdge SDK and runtime. The host keeps its role while a module supplies code behind the agreed interface. This offers a way to migrate part of an existing application rather than rewrite it all at once. section 10.8 section 10.0
That flexibility has a boundary. The runtime provides sandboxed linear memory shared by the VM and module; communicating through it requires functions to allocate and deallocate memory in the module. WASI supplies a low-level binary interface, not a replacement for those integration details. section 10.8 section 10.0


