Wasmer 创始人兼 CEO Syrus Akbary 在 Zig 仓库中提出了一个 “支持 WASIX” 的 issue;并提供了 5000 美元的悬赏。他表示,Zig 支持 WASIX 对 Wasm 和 Zig 社区来说均意义重大。
根据介绍,WASIX 是对现有 WASI ABI 的长期稳定和支持,加上额外的非侵入式系统调用扩展,以弥补缺失的空白;使真正、实用和有用的应用程序能够立即编译和使用。它的目标是加快 WASI 生态系统的发展,且不会对 wasi_preview1 进行任何破坏性变更。
目前 WASIX 已在 WASI Preview 1 的基础上增加了对 pthreads、sockets、fork、process spawning 等功能的全面支持。Syrus Akbary 指出,通过在 Zig 中提供对 WASIX 的支持,将会带来诸多好处。譬如:
- 它允许在许多平台(包括浏览器)中使用 Zig
- 它将允许拥有一个通用的 C 编译器,将 C 文件(在底层使用 LLVM)编译到任何架构,并且可以从任何支持运行 Wasm 的架构运行
- 它将允许创建 http 服务器(或 TCP/UDP 服务器)以在 Edge 甚至浏览器中运行 Zig 或 C 文件
第一个在 Zig 生态系统中添加对 Wasm/WASIX 支持的开发人员将获得 5000 美元的奖金。只要满足以下条件即可获得赏金(不强制要求将 PR 合并到 Zig master):
- wasix-libc 中的所有 C 示例都可以从 Zig 直接正确编译到 Wasm/WASIX 中,并在 Wasmer 中正常运行:https://github.com/wasix-org/wasix-libc/tree/main/examples
- Zig 文件可以正确编译到 Wasm/WASIX,自定义示例可正常运行
- Sockets
- Process spawning
- Piping