|
Mozilla的目標是使Rust成為JavaScript等Web語言,與Web應用中的WebAssembly和JavaScript一起使用
1.jpg (79.61 KB, 下載次數(shù): 813)
下載附件
遠程控制
2018-4-12 10:11 上傳
Mozilla正在研究JavaScript和Rust語言之間的橋梁,稱為wasm-bindgen,它建立在WebAssembly可移植代碼格式上。
wasm-bindgen努力旨在提高JavaScript和Rust之間的互操作性,并通過WebAssembly使Rust成為像JavaScript這樣的Web語言。 Wasm-bindgen提供WebAssembly(wasm)模塊和JavaScript之間的高級別交互。使用wasm-bindgen,JavaScript和WebAssembly可以與字符串,JavaScript對象和類進行通信,而不僅僅是整數(shù)和浮點數(shù)。
wasm-bindgen的高級功能包括:
導入JavaScript結構,函數(shù)和對象以在WebAssembly中調用。開發(fā)人員可以調用結構和訪問屬性的JavaScript方法,一旦注釋被連接,就可以為Rust代碼提供原生的感覺。
將Rust結構和函數(shù)導出為JavaScript。一個Rust結構體可以被導出,變成一個JavaScript類。然后可以傳遞結構而不是整數(shù)。
目前,WebAssembly僅支持四種類型:兩種整數(shù)類型和兩種浮點類型。但JavaScript和Rust開發(fā)人員經(jīng)常使用更豐富的類型,例如Rust開發(fā)人員使用Result進行錯誤處理。使用wasm-bindgen,JavaScript可以使用字符串或Rust函數(shù)調用Rust API來捕獲JavaScript異常。通過消除WebAssembly和JavaScript之間的不匹配,JavaScript可以調用WebAssembly函數(shù),而WebAssembly可以對JavaScript函數(shù)執(zhí)行相同的操作。
建立在ECMAScript模塊上,wasm-bindgen專注于Rust。但其目的也是為了最終還將用于C和C ++等語言。但Mozilla稱wasm-bindgen目前還不夠穩(wěn)定,無法擴展到其他語言。
Rust社區(qū)的一大目標是讓該語言成為網(wǎng)絡語言。通過鎖定WebAssembly,Rust可以像JavaScript一樣成為一種可以在網(wǎng)絡上運行的語言。但Mozilla指出,它并沒有試圖用Rust取代JavaScript。該公司不希望Rust WebAssembly應用程序完全用Rust編寫;相反,大部分應用程序代碼仍然在JavaScript中。 Rust和WebAssembly將用于應用程序的特定部分,例如解析源映射或確定對DOM做了哪些更改。
|
|