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