你應該知道的 Crate

這是一份精選的超棒 Crate 清單,供您進行 Rust 和 WebAssembly 開發使用。

您也可以在 WebAssembly 分類中瀏覽所有已發布至 crates.io 的 Crate。

與 JavaScript 和 DOM 互動

wasm-bindgen | crates.io | 儲存庫

wasm-bindgen 促進 Rust 和 JavaScript 之間的高階互動。它允許將 JavaScript 事物匯入 Rust,並將 Rust 事物匯出至 JavaScript。

wasm-bindgen-futures | crates.io | 儲存庫

wasm-bindgen-futures是連接JavaScript Promise和Rust Future的橋樑。它可以在兩個方向上轉換,在處理Rust中的非同步任務和允許與DOM事件和I/O操作進行交互時非常有用。

js-sys | crates.io | 存放庫

所有JavaScript全域類型和方法的原始wasm-bindgen匯入,例如ObjectFunctioneval等。這些API可移植到所有標準ECMAScript環境,而不仅仅是Web,例如Node.js。

web-sys | crates.io | 存放庫

所有Web API的原始wasm-bindgen匯入,例如DOM操作、setTimeout、Web GL、Web Audio等。

錯誤報告和記錄

console_error_panic_hook | crates.io | 存放庫

通過提供將錯誤訊息轉發到console.error的恐慌捕捉來讓您除錯wasm32-unknown-unknown上的錯誤。

console_log | crates.io | 存放庫

提供一個日誌箱後端的箱子,將日誌訊息路由到開發者工具控制台。

動態分配

wee_alloc | crates.io | 存放庫

Wasm-Enabled, Elfin Allocator。一種非常小的(約為 1K 未壓縮的 .wasm)配置實作,當需要重視程式碼大小甚於配置效能時使用。

剖析和產生 .wasm 二進位檔

parity-wasm | crates.io | 資源存放庫

一種序號化、解碼序號化並建置 .wasm 二進位檔的低階 WebAssembly 格式程式庫。對於眾所周知的自訂區段(如「名稱」區段及「reloc.WHATEVER」區段)有良好的支援。

wasmparser | crates.io | 資源存放庫

一個用於剖析 WebAssembly 二進位檔的簡單事件驅動程式庫。提供所剖析的每項物件的位元組偏移量,例如,在解譯重定位時,這項資訊是必要的。

解譯和編譯 WebAssembly

wasmi | crates.io | 資源存放庫

一種來自 Parity 的可嵌入式 WebAssembly 解譯器。

cranelift-wasm | crates.io | 資源存放庫

將 WebAssembly 編譯成原生主機的機器碼。作為 Cranelift(原名 Cretonne)程式碼產生器專案的一部分。