本計劃在 .NET 8 中推出的 WASI 推遲到 .NET 9

張善友發表於2023-10-02

本計劃在 .NET 8 中推出的 WASI  已推遲到 .NET 9,請參閱 Github 上的 WASI 跟蹤問題。 在.NET 8 Preview 4 開始支援生成與 WASI 相容的 .wasm 檔案,使用獨立的 WebAssembly 執行時 Wasmtime CLI[1] 執行該檔案。

去年的文章 在 .NET 7上使用 WASM 和 WASI [2]介紹了 WebAssembly WASI的支援最早在Steve Sanderson 個人倉庫 SteveSandersonMS/dotnet-wasi-sdk 開始引入,接著正式引入到 dotnet/dotnet-wasi-sdk, 目前這部分工作已經引入到dotnet/runtime 的WASI 跟蹤問題 [3]。  Steve Sanderson 在Youtube影片 [4]解釋瞭如何獲得單個 wasm 檔案,.NET 8 新增了一個新的“wasi-experimental”工作負載,取代了早期的 Wasi.Sdk。這是為伺服器端 WebAssembly 方案提供 .NET 本機內建支援的一個步驟。他還展示了幾個令人興奮的使用示例。

鑑於WASI的位元組碼聯盟 WebAssembly:面向開發人員的更新路線圖[5],因為WASI預覽版2和3非常有可能會引入重大變化,這對於.NET 對WASI的支援非常有意義。WebAssembly(Wasm)生態系統正在轉型。開發人員可以期待一個模組化、可虛擬化且強大的環境來構建應用程式、庫和服務。

我們來看一看在.NET 8 下面如何使用WASI。

.NET SDK: .NET 8.0 RC1
dotnet cli :  .NET WebAssembly Build Tools
.NET workloads:
  • wasi-experimental
  • wasm-experimental
  • wasm-tools (來自 Visual Studio)

image

Wasmtime CLI: 透過MSI 安裝了14.0 版本

示例程式參考:wasiconsole-hello-world[6]

相關連結:

相關文章