一個實例幫助我們快速改進 JavaScript 和 Rust 的互操作性

我們已經見識了WebAssembly如何快速編譯、加速JS庫以及生成更小的二進制格式。改進 JavaScript 和 Rust 的互操作性我們甚至爲Rust和JavaScript社區以及其他Web編程語言之間的更好的互操作性制定了高級規劃。正如前面一篇文章中提到的,我想深入瞭解一個特定組件的細節,wasm-bindgen。

今天WebAssembly標準只定義了四種類型:兩種整數類型和兩種浮點類型。然而,大多數情況下,JS和Rust開發人員正在使用更豐富的類型! 例如,JS開發人員經常與互以添加或修改HTML節點相關的文檔交互,而Rust開發人員使用類似Result等類型進行錯誤處理,幾乎所有程序員都使用字符串。

被侷限在僅使用由WebAssembly所提供的類型將會受到太多的限制,改進 JavaScript 和 Rust 的互操作性這就是wasm-bindgen出現的原因。

wasm-bindgen的目標是提供一個JS和Rust類型之間的橋接。它允許JS使用字符串調用Rust API,或Rust函數捕獲JS異常。wasm-bindgen抹平了WebAssembly和JavaScript之間的阻抗失配,確保JavaScript可以高效地調用WebAssembly函數,並且無需boilerplate,同時WebAssembly可以對JavaScript函數執行相同的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章