2026 年 6 月 7 日:wasi - gfx 与 wasi:webgpu 分道扬镳,多方面规划与变革来袭!
过去几年里,Sean Isom、Mendy Berger 团队一直致力于通过 `wasi:webgpu`、`wasi:surface`、`wasi:frame - buffer` 和 `wasi:graphics - context` 为 WebAssembly 引入图形功能。不过在这个过程中,团队发现 WASI 核心子组追求的长期稳定性目标与 UI 界面快速迭代的需求不兼容。WASI 追求数十年的架构稳定性,而像 `wasi:surface` 这样的接口仍需大幅改进。
随着 WebAssembly 组件模型的成熟,出现了一种健康趋势:项目开始在官方 WASI 命名空间之外构建独特的生态系统,比如由 [CNCF wasmCloud](https://wasmcloud.com) 开发的云原生 `wasmcloud:secrets`、`wasmcloud:messaging` 和 `wasmcloud:postgres` 接口。可以把 WASI 看作操作系统的标准库,处理时间和文件系统等底层基础功能,而图形和数据库驱动等专业领域则属于用户空间库。
随着 WebGPU 作为 W3C 候选推荐标准趋于稳定,`wasi:webgpu` 应继续作为底层行业标准存在于 WASI 命名空间中。wasi - gfx 的其他部分将被迁移到独立的命名空间,并在 `wasi:webgpu` 的基础上构建,作为一组互补的高级提案持续发展。以下是为两个生态系统的发展所制定的分道扬镳的计划。
`wasi:webgpu` 的规划
由于 `wasi:webgpu` 从根本上与 WebGPU 网络标准相对应,其基础天生稳定,因此它将继续作为官方 WASI 规范存在。
- 异步支持:团队正积极推动该规范进入 P3 阶段,以利用 WebAssembly 原生的异步功能。
- 合规性:目前正在努力确保通过官方 WebGPU 一致性测试套件(CTS),预计很快会分享相关进展。
关于这次架构拆分的背景信息,可阅读 wasi - gfx GitHub 上的 [讨论](https://github.com/WebAssembly/wasi - webgpu/issues/42),那里是将核心 WebGPU 与窗口表面分离的讨论起点。
弃用 `wasi:graphics - context`
此前,`wasi:graphics - context` 是 WebGPU、帧缓冲区和表面之间的连接点。但团队在 [GitHub 问题 #55](https://github.com/WebAssembly/wasi - webgpu/issues/55) 中找到了更简洁的设计方案。由于现在无需它也能实现相同目标,因此正式弃用 `wasi:graphics - context`。
[`wasi - gfx`](https://github.com/wasi - gfx/wasi - gfx) 命名空间的诞生
`wasi:surface` 和 `wasi:frame - buffer` 不会消失,只是要换个新家。团队将把这些接口从核心 WASI 标准中移出,放到它们自己的专属命名空间 `wasi - gfx` 中(即 `wasi - gfx:surface`、`wasi - gfx:frame - buffer`)。选择这个名称,是为了表明坚定地致力于在 WebAssembly 组件模型和更广泛的 WebAssembly 生态系统基础上进行构建。
这次迁移带来了显著优势:
- 更快的迭代速度:可以像灵活的库一样对接口进行版本管理,而不是遵循严格的标准。
- 未来的灵活性:这种生态系统结构将允许对音频或摄像头等其他 UI 应用接口进行试验。
持续的工具支持
团队的实现工具,包括 [`wasi - gfx - runtime`](https://github.com/wasi - gfx/wasi - gfx - runtime) 和 [`wasi - gfx - shim`](https://github.com/wasi - gfx/wasi - gfx - shim),将继续同时全面支持 `wasi:webgpu` 和新的 `wasi - gfx` 命名空间。预计未来几周内相关工作将逐步落地。
全新的标志
团队很高兴为 wasi - gfx 推出全新的标志!在建立自己的命名空间和身份之际,认为是时候用一个全新的视觉标识来代表这个项目了。
感谢 [Abe Massry](https://x.com/abemassry) 设计并绘制了这个标志,团队很喜欢最终的效果!
交流社区
最近,[Renderlet Discord 服务器](https://discord.gg/2TjpDzDNhQ) 自然地成为了几位热衷于这项工作的工程师的实际交流场所。现在正式宣布:Renderlet Discord 服务器现在是官方的 [wasi - gfx 服务器](https://discord.gg/xUKNS56v)。如果想讨论 WebAssembly 图形相关内容或参与贡献,欢迎加入!
[← 博客](/blog/)