WASI(WebAssembly System Interface)是一组为 WebAssembly 定义的标准化系统接口规范,常被类比为"WebAssembly 的 POSIX"。它规定了 WebAssembly 模块如何与操作系统资源交互,使同一份编译产物能够在浏览器之外——服务端、边缘节点、嵌入式设备——一致运行。
WASI 采用能力型安全模型,模块起始时没有任何隐式权限,只能访问宿主显式授予的资源。其接口按能力划分为若干模块化的包,例如文件系统、网络套接字(TCP/UDP、HTTP 客户端与服务端)、时钟、随机数、键值存储、对象存储等,开发者按需导入,无需为不需要的能力付出开销。
WASI 已发布三个里程碑版本:0.1(Preview 1)、0.2(Preview 2)和 0.3(Preview 3)。其中 WASI 0.3.0 于 2026 年 6 月 11 日正式发布,把原生异步能力引入组件模型——通过 async func、stream、future 三个内建原语,异步操作由运行时统一调度,解决了此前组件链式组合时异步唤醒信号无法跨组件边界传递的"三明治问题"。WASI 0.3 已被 Wasmtime 46 及以上版本默认启用。