簡介

本書是關於 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,您可以從在本地網路上執行 Rust,將其發布為較大應用程式的一部分,甚至在 NPM 上發布 Rust 編譯為 WebAssembly 的程式碼!