A WebAssembly runtime loads, instantiates, and executes compiled WebAssembly modules. WASI provides the interface between those modules and the host, allowing execution beyond a browser and without JavaScript. section 10.1
The runtime defines how host applications interact with external Wasm libraries through parameters and outputs. Modules can therefore be exchanged without changing or stopping the host application, provided they implement the expected interface. section 10.1
A Wasm runtime provides:
- WASI-based integration between WebAssembly modules and host applications. section 10.1
- A shared, sandboxed linear memory model for the virtual machine and module. section 10.8
- A boundary where module functions allocate and deallocate memory for communication with the virtual machine. section 10.8
Running Wasm with WasmEdge
WasmEdge demonstrates one implementation of a universal Wasm runtime. Its SDK can consume Wasm modules, including applications such as a command-line search tool; a hello.wasm module can be downloaded and tested with the runtime. section 10.8 section 10.1
Figure 10.3 Wasm running in the WASI runtime
Use the runtime diagram to trace how a Wasm module executes inside a WASI runtime. section 10.1

