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用于正式產品開發。
-
net
+關注
關注
0文章
125瀏覽量
56186 -
應用程序
+關注
關注
37文章
3285瀏覽量
57786
發布評論請先 登錄
相關推薦
評論