WASI 0.3 预览版在 Wasmtime 37+ 中发布:WebAssembly 组件的原生异步到来

ReactNode.jsDevOps

WASI 0.3 预览版——将 WASI 基于 WebAssembly 组件模型重构,以提供原生异步原语(future, stream)——现已在 Wasmtime 37 及更高版本中可供测试。这标志着第一个广泛可访问的运行时实现,提供开发人员所需的 0.3 预览版基础设施,以编写真正异步、可组合的跨语言 WebAssembly 组件。(wasi.dev)

变化概述(简短)

  • WASI 0.3 在组件 ABI 级别引入了原生异步(future/stream 类型和异步函数签名),允许组件在不需要尴尬的手动状态机的情况下等待主机 I/O。这将许多 0.2 接口重构为使用异步原语。(wasi.dev)
  • Wasmtime(37+)在功能标志后面暴露了组件模型异步支持,因此运行时和工具链可以开始今天就体验真实的异步组件场景。(docs.rs)

为什么全栈团队应该关注

  • 服务器端 WebAssembly 对网络服务变得实用:异步优先的 I/O 减少了主机的变通方法,使长时间运行或高并发模式对基于 Wasm 的微服务和边缘函数变得更简单、更高效。(wasi.dev)
  • 真实的多语言组合:编译为 Wasm 组件的语言工具链(Rust、AssemblyScript、.NET 等)可以在异步合同上进行互操作,而无需定制的粘合代码,从而提高后端和边缘层的重用性和安全性。(wasi.dev)
  • 工具和构建链将发生变化:随着生态系统采用 0.3 形态,预计编译器、绑定生成器和运行时标志(特别是 wasm 目标和 rustc/wasi 目标)会有更新。Wasmtime 的功能标志使得现在可以测试这些集成。(docs.rs)

立即的实际影响

  • 概念验证的平衡:评估 Wasm 用于服务器或边缘工作负载的团队应在 Wasmtime 37+ 上运行集成证明,以验证异步行为和流语义,然后再承诺跨运行时假设。(wasi.dev)
  • 工具链监控:关注语言目标(例如 Rust/工具链中的 wasm32-* 目标)、组件感知的打包工具和需要打包组件而非核心模块的 CI 构建工具的更新。(wasi.dev)
  • 互操作测试:添加组件级集成测试,以验证异步生命周期和取消语义(在实现的情况下)——0.2 和 0.3 表示之间的差异是故意非平凡的,必须在您的管道中进行验证。(wasi.dev)

结论 WASI 0.3 的原生异步在 Wasmtime 37+ 中的到来,是迄今为止服务器端 WebAssembly 最重要的平台级变化:它将之前尴尬的异步故事转变为一等公民原语,解锁了更简单的异步 I/O、流和可组合的多语言组件。构建在 Wasm 上的团队应立即开始集成测试,并密切关注工具链和运行时的更新,因为 0.3 预览版朝着正式发布不断演进。(wasi.dev)

来源:

来源

继续阅读