簡介
本書是關於 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 的程式碼!