WebAssembly System Interface, or WASI, is a family of APIs for WebAssembly being designed and standardized through the WASI Subgroup of the W3C WebAssembly Commmunity Group. Initially, the focus is on system-oriented APIs, covering files, networking, and a few other things. Additional domains are expected to be added in the future.

To facilitate use of the WASI API, a libc implementation called WASI libc is being developed, which presents a relatively normal musl-based libc interface, implemented on top of a libpreopen-like layer and a system call wrapper layer (derived from the “bottom half” of cloudlibc). The system call wrapper layer makes calls to the actual WASI implementation, which may map these calls to whatever the surrounding environment provides, whether it's native OS resources, JS runtime resources, or something else entirely.

WASI 目前有三份实现:

https://github.com/WebAssembly/WASI/blob/master/docs/WASI-overview.md - WASI: WebAssembly System Interface
https://hltj.me/wasm/2019/04/04/standardizing-wasi.html - 【译】【图文】标准化中的 WASI:在 web 之外运行 WebAssembly 的系统接口
https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/ - Standardizing WASI: A system interface to run WebAssembly outside the web