首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >WebAssembly >WASI(WebAssembly System Interface)是什么,有什么用?

WASI(WebAssembly System Interface)是什么,有什么用?

词条归属:WebAssembly

1. WebAssembly 的"POSIX"

WASI(WebAssembly System Interface)是一组为 WebAssembly 定义的标准化系统接口规范,常被类比为"WebAssembly 的 POSIX"。它规定了 WebAssembly 模块如何与操作系统资源交互,使同一份编译产物能够在浏览器之外——服务端、边缘节点、嵌入式设备——一致运行。

2. 能力型安全与模块化接口

WASI 采用能力型安全模型,模块起始时没有任何隐式权限,只能访问宿主显式授予的资源。其接口按能力划分为若干模块化的包,例如文件系统、网络套接字(TCP/UDP、HTTP 客户端与服务端)、时钟、随机数、键值存储、对象存储等,开发者按需导入,无需为不需要的能力付出开销。

3. 版本演进与原生异步

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 及以上版本默认启用。

相关文章
WASI|将WebAssembly带到浏览器之外
WebAssembly(Wasm)[1]是一种二进制软件格式,所有浏览器都可以在任何操作系统(OS)上直接、安全地[2]以接近原生的速度运行。然而,它最大的承诺是最终以同样的方式在任何地方[3]工作,从物联网设备和边缘服务器,到移动设备和传统桌面。这篇文章介绍了实现这一目标的主界面。本系列的下一篇文章将描述一些已经可用的、真实世界的相同接口的实现和应用程序。
CNCF
2021-05-07
2.7K0
Threadlocal是什么,有什么用
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。
smallmayi
2022-05-12
1.2K0
Docker是什么,有什么用?
Docker是一个基于轻量级虚拟化技术的容器,整个项目基于Go语言开发,并采用了Apache 2.0协议。Docker可以将我们的应用程序打包封装到一个容器中,该容器包含了应用程序的代码、运行环境、依赖库、配置文件等必需的资源,通过容器就可以实现方便快速并且与平台解耦的自动化部署方式,无论你部署时的环境如何,容器中的应用程序都会运行在同一种环境下。
后端码匠
2019-09-02
19.3K0
DNS是什么?有什么用?
DNS是互联网的一项服务,简单的说,就是把域名(简单来说就是网站服务器的名字)转换成IP地址(简单说就是一个电脑的电话号码),好让电脑直接访问到网站的服务器。
简单并不简单
2019-07-05
12.7K0
hosts文件是什么?有什么用?
先将C:\Windows\System32\drivers\etc目录下的Hosts文件,
简单并不简单
2019-09-25
7K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券