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