圖片來源: 

CNCF

前篇報導請見:

Wasm是雲原生技術的下一步發展,更是GAI實現快速推論關鍵助力 

WebAssembly如何成為雲原生生態圈關鍵技術

在2023年發表的Wasm生態地圖第一版,涵蓋了120個專案,包括了四類開發語言和11類相關專案,CNCF估計經濟產值達到594億美元。主要可以分為兩大類專案,包括了Dev(應用程式開發)和Ops(應用程式部署)。後續這份生態地圖則整合到CNCF官網上的雲原生生態地圖,成為了其中一類子技術地圖。

圖片來源/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圈高度青睞。

熱門新聞

Advertisement