CNCF 与 Wasm 社区合作发布了首版 Wasm landscape,旨在帮助更好地了解 Wasm 生态系统范围。“最初的 Cloud Native Landscape 帮助我们描绘了围绕云原生技术的庞大生态系统,我们相信,随着生态系统的发展和壮大,Wasm 也需要同样的东西。”
初步的 Wasm landscape 共包括 11 个类别和 120 个项目或产品,总经济价值达 594 亿美元;其中 11 个类别分为两大领域: Dev(应用开发)和 Ops(应用部署)。
Wasm 应用开发需要自己的编程语言生态系统和相关工具,如编译器、框架、库、工具和运行时。Dev 类别包括编程语言、运行时、应用程序框架edge/bare metal、AI 推理、嵌入式功能和工具。
Wasm 领域中共有 4 类编程语言:
- 编译型语言。一等公民是指可以直接编译为 Wasm 字节码并在 Wasm 运行时中运行而无需任何依赖的语言,C、C++、Zig 和 Rust 都属于这一类。它们能生成速度最快、体积最小的 Wasm 应用程序。
- 托管语言。托管语言仍然是编译语言,但编译器输出需要"managed runtime"才能正常运行。包括有 Kotlin、Dart、Go、Java 和 .Net 等。
- 脚本语言。JavaScript、Ruby、PHP 和 Python 等脚本语言可以在 Wasm 中运行。通过将脚本语言解释器(通常用 C 编写)编译为 Wasm,然后基于 Wasm 的解释器程序就可以执行脚本了。
- “Compile to Wasm”语言。针对 Wasm 目标进行优化的新一代编译语言,目前仍处于非常早期的阶段。但如果做得好,这些语言有潜力成为 Wasm 领域真正的一等公民。该类别中的两个佼佼者是 Moonbit 和 Grain,它们的设计采用了 Go 和 Rust 中的现代语言特性,并针对高效的 Wasm 编译和执行进行了优化。Moonbit 虽然还处于早期阶段,但已经配备了从动态代码自动补全到在线 IDE 的一整套工具。
创建 Wasm 应用程序后的下一步就是在生产中部署和扩展它。云原生环境中有大量的工具、框架和服务来管理应用程序部署。其中许多都集成了 Wasm 支持。Ops 类别共包括编排和管理、托管平台、去中心化平台、调试和可观察性以及工件。
更多详情可查看官方公告。