簡介

本書關於 wasm-bindgen,這是一個 Rust 函式庫和 CLI 工具,可促進 Wasm 模組與 JavaScript 之間的高階互動。wasm-bindgen 工具和 crate 只是 Rust 和 WebAssembly 生態系統的一部分。如果您還不熟悉 wasm-bindgen,建議從閱讀 生命遊戲教學開始。如果您對 wasm-pack 感興趣,您可以在這裡找到相關文件

wasm-bindgen 工具有點像是 組件模型提案等功能的半個 polyfill,一半是增強 JS 和 wasm 編譯程式碼(目前主要來自 Rust)之間高階互動的功能。更具體來說,這個專案允許 JS/wasm 與字串、JS 物件、類別等進行通訊,而不是純粹的整數和浮點數。例如,使用 wasm-bindgen,您可以在 Rust 中定義一個 JS 類別,或者從 JS 取得字串或傳回字串。功能也在不斷增長!

目前這個工具主要專注於 Rust,但底層基礎與語言無關,並且希望隨著這個工具的穩定,隨著時間的推移,它可以被用於像 C/C++ 這樣的語言!

此專案的顯著功能包括

  • 將 JS 功能導入到 Rust 中,例如 DOM 操作console 記錄,或效能監控
  • 將 Rust 功能導出到 JS,例如類別、函式等。
  • 使用豐富的類型,如字串、數字、類別、閉包和物件,而不僅僅是 u32 和浮點數。
  • 自動為 JS 使用的 Rust 程式碼產生 TypeScript 綁定。

透過新增 wasm-pack,您可以從在本地 Web 上執行 Rust,到將其作為較大應用程式的一部分發布,甚至在 NPM 上發布 Rust 編譯的 WebAssembly!