

涵盖四类开发语言和11类相关项目,CNCF推估产值高达594亿美元
/CNCF
在应用程序开发类Wasm相关项目上,包括了四种不同Wasm支持型态的语言,分别是编译语言、托管类语言、脚本语言、为Wasm优化的新语言,另外开发类项目则可分为Runtime、应用程序框架、边缘和裸机、AI推论、嵌入式功能、工具链等6类项目。
而在应用程序部署的Wasm相关项目上,则可分为调度与管理类项目、托管平台、去中心化平台、调试和可观察性项目、半成品存储等5类Wasm相关项目。
进一步来看可支持Wasm的语言,包括了提供一级支持的编译语言,主要有C、C++、Rust和Zig,这类语言可以直接编译成Wasm二进位档,而托管类语言则Go、Dart、Kotlin、Java、C#和.Net等,则需要搭配具有管理能力(如内存垃圾搜集能力)的runtime来运行wasm。可搭配的runtime项目像是WasmEdghe、Wasmtime或浏览器圈熟悉的V8引擎,或像Java与C#则需要把runtime和代码一起编译才能运行,文件大小会稍大,另外还有脚本语言如JavaScript、Ruby、PHP、Python可以在Wasm环境中运行,编译成Wasm档后,用Wasm的解释器就可以运行。而Moonbit和Grain则是两个正在发展,以Wasm优化为目标而诞生的开发语言。
代码编译成Wasm Bytecode之后,需要创建Wasm运行环境,这也是开发者最关心的Wasm类项目。可用来创建Wasm运行环境的项目,较受到关注的像是WasmEdge、Wasmtime、Wamr、WAVM、Wasmer、wasm3、Lunatic、wazero和V8。其中,WasmEdge适合用于云端、边缘应用和分布式应用,而Wasmtime则是一个独立安装,可支持WASI,只能运行wasm的runtime。
对于想要打造大型云原生应用的开发者,则需要功能更完整的Wasm应用框架上,来提供更多进阶或复杂功能的组件,这类应用框架项目最受到关注的是WasmEdge项目。WasmEdge框架最大特色是提供了许多进阶的POSIX API,也可以搭配支持许多知名Rust和JavaScript框架,像是可搭配node.js使用。另外还两个值得关注的Wasm应用框架,包括了可用来打造Wasm微服务架构的Spin框架,以及可用于开发和管理分布式应用架构的WasmCloud项目。
这两年GenAI爆红后,可以将Wasm创建AI推论环境的项目受到高度关注,较知名的则有Wasmtime、WasmEdge和WAMR。像是WasmEdge项目可支持不少知名AI技术框架,如OpenVINO、Pytorch、Tensorflow、MMGL/Llama2,也受到AI圈高度青睐。
