簡介

本書是關於 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 和浮點數。
  • 自動產生 TypeScript 繫結,供 JS 使用的 Rust 程式碼。

透過新增 wasm-pack,您可以從本機在網路上執行 Rust,將其發佈為較大應用程式的一部分,甚至在 NPM 上發佈編譯成 WebAssembly 的 Rust!