日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

.NET 应用程序支持直接调用 WebAssembly 模块

發布時間:2023/12/4 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET 应用程序支持直接调用 WebAssembly 模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebAssembly Runtime 現已添加 .NET Core API,開發者可直接在 .NET 應用程序中調用 WebAssembly 模塊。

Mozilla 宣布由 Bytecode Alliance 創建的 Wasmtime(WebAssembly runtime)現已添加處于早期預覽版狀態的 .NET Core API,這就意味著開發者可以直接在 .NET 應用程序中調用 WebAssembly 代碼。

Bytecode Alliance(字節碼聯盟)是由 Mozilla、Fastly、Intel 與 Red Hat 聯合成立的組織,該聯盟旨在通過協作實施標準和提出新標準,以完善 WebAssembly 在瀏覽器之外的生態。Mozilla 提到,.NET Core 作為一個跨平臺的 Runtime,仍提供對 WebAssembly 的支持主要三個好處,除了可跨平臺共享更多代碼之外,還能安全地隔離不受信任的代碼,同時憑借著 WebAssembly 的接口類型(WebAssembly Interface Types),WebAssembly 和 .NET 可相互傳遞復雜類型。

雖然我們能夠使用 .NET Core 構建跨平臺應用,但如果要使用諸如 C 或是 Rust 等原生函數庫,這仍然是十分不方便的操作,因為需要函數庫為每個平臺發布特定函數庫版本。不過有了 WebAssembly 之后,我們可以將其作為橋梁以簡單滿足上面的需求。原生函數庫可以先編譯成 WebAssembly,然后包括 .NET Core 在內的許多平臺就能使用這些 WebAssembly 模塊,這將簡化函數庫的發布以及應用程序對這些函數庫的依賴方式。

由于 WebAssembly 是面向網頁設計的,網頁是一種每次訪問網站(讀/寫數據)都會執行不受信任代碼的環境,WebAssembly 模塊只能調用從主機環境明確輸入的外部函數,而且只能在主機分配的內存區域進行讀寫數據,這種沙盒設計方式也能被應用在 .NET Core 中,以增加安全性。通過支持 WebAssembly,.NET Core 也能使用沙盒以執行不信任代碼。

另外,Bytecode Alliance 力推的 WebAssembly 接口類型增加了 WebAssembly 與其他語言的互通性,.NET Core 也能從中受益。Mozilla 表示,WebAssembly 接口類型簡化了應用程序與 WebAssembly 模塊間來回傳遞復雜類型所需的“膠水代碼”。當 Wasmtime 的 .NET API 最終可以對接口類型進行操作,WebAssembly 和 .NET 之間就能夠無縫地傳遞復雜類型。

最后,Wasmtime 新增加的這個 .NET Core API 尚處于預覽階段,Bytecode Alliance 成員仍在對其積極開發中,更新將不保證向后兼容。當前目標是讓 Wasmtime 更為穩定,因此不建議開發者將 Wasmtime 的 .NET Core API 用于正式產品開發。

原文鏈接:https://www.oschina.net/news/111967/using-webassembly-from-dotnet-with-wasmtime


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結

以上是生活随笔為你收集整理的.NET 应用程序支持直接调用 WebAssembly 模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。