WebAssembly正式成為W3C推薦的網頁應用標準

W3C(World Wide Web Consortium)宣布三項WebAssembly規範已經成為網頁標準,分別是WebAssembly核心規範、網頁API以及JavaScript介面。而WebAssembly也成為了第4個允許在瀏覽器上執行的語言,其他三個語言分別是HTML、CSS和JavaScript。

 

W3C專案負責人Philippe Le Hégaret提到,機器學習與人工智慧應用越來越普遍,因此網頁平臺能夠支援高效能應用程式很重要,而WebAssembly利用開放網頁平臺技術,擴展了網頁應用程式的種類。

 

WebAssembly核心規範定義了一個低階的虛擬機器,模擬了許多微處理器的功能,透過JIT(Just-In-Time)編譯和直譯,WebAssembly引擎可用幾乎與原生平臺編譯程式碼相同的速度執行程式。而以WebAssembly格式儲存程式碼的.wasm檔案,類似Java的.class檔案,其包含了靜態資料和操作靜態資料的程式碼區塊,但與Java不同的是,WebAssembly通常是由其他程式語言,像是C/C++或Rust編譯而成。

 

第二個成為標準的規範是WebAssembly網頁API,這個規範定義了Promise介面,用於請求和執行.wasm檔案,W3C提到,.wasm檔案經過最佳化,可允許整個檔案擷取完成之前就開始執行,而這強化了WebAssembly應用程式回應的能力。

 

最後一個規範WebAssembly JavaScript介面定義了JavaScript API,讓JavaScript來呼叫並將參數傳遞給WebAssembly函式。在瀏覽器中,WebAssembly所有與主機的互動,都是透過JavaScript管理,而這代表WebAssembly受JavaScript安全模型保護。

 

WebAssembly是一種安全且可移植的低階程式碼格式,目的是要讓程式能高效能的執行,而且以壓縮形式表示資源,使網頁平臺能執行運算密集應用,開發人員可用WebAssembly來開發影音解碼器、密碼運算或是遊戲等,且由於WebAssenbly提供了一個獨立於平臺的運作環境,因此可以在各種電腦平臺上執行。

 

WebAssembly的發展工作正如火如荼的進行,除了上述W3C正式推薦WebAssembly,在瀏覽器世界達到了一個里程碑,Mozilla也為了要擴展WebAssembly的可移植性,推動了WebAssembly系統介面WASI,要讓WebAssembly的應用程式能跨出瀏覽器獨立執行,另外,Mozilla還與多家企業共組聯盟Bytecode Alliance,推動WebAssembly在瀏覽器之外的發展。

(相關資訊來自iThome