這份文件是 未發布的 Rust 和 WebAssembly 使用說明,已發布的文件可以在 Rust 和 WebAssembly 的主要文件網站 找到。在此文件中所記載的功能可能無法在 Rust 和 WebAssembly 的已發布工具版本中使用。

你應該要知道的板條箱

這是一個精選的出色板條箱清單,你應該知道這些板條箱,才能執行 Rust 和 WebAssembly 開發。

你也可以瀏覽已發布到 crates.io 中 WebAssembly 類別的所有板條箱。

與 JavaScript 和 DOM 互動

wasm-bindgen | crates.io | 儲存庫

wasm-bindgen 促進 Rust 和 JavaScript 之間的高層級互動。它允許使用者匯入 JavaScript 中的內容到 Rust 中,並將 Rust 中的內容匯出到 JavaScript 中。

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

wasm-bindgen-futures 是連接 JavaSript 承諾和 Rust 未來的橋樑。它可以在兩個方向轉換,在 Rust 中處理非同步任務時很有用,並允許與 DOM 事件和 I/O 操作互動。

js-sys | crates.io | 儲存庫

所有 JavaScript 全域類型和方法,例如 物件函式eval 的未處理 wasm-bindgen 匯入,等等。這些 API 可以移植到所有標準 ECMAScript 環境中,不只網路,例如 Node.js。

web-sys | crates.io | 儲存庫

所有網路 API,例如 DOM 處理、setTimeout、WebGL、Web 音訊,等等的未處理 wasm-bindgen 匯入。

錯誤報告和記錄

console_error_panic_hook | crates.io | 儲存庫

此 crate 讓您在 wasm32-unknown-unknown 上偵錯恐慌,方法是提供一個恐慌掛勾,將恐慌訊息傳送到 console.error

console_log | crates.io | 儲存庫

此 crate 提供 log crate 的後端,會將記錄的訊息路由到 devtools 控制台。

動態配置

wee_alloc | crates.io | 储存库

Wasm-Enabled,Elfin Allocator。一个小型(~1K 未压缩的 .wasm) 分配器实现,当代码大小比分配性能更受关注时。

解析和生成 .wasm 二进制文件

parity-wasm | crates.io | 储存库

一种用于序列化、反序列化和构建 .wasm 二进制文件的低级 WebAssembly 格式函数库。对知名自定义部分(例如“名称”部分和“reloc.WHATEVER”部分)有良好的支持。

wasmparser | crates.io | 储存库

一个用于解析 WebAssembly 二进制文件的简单事件驱动函数库。在解析 reloc 时,它可以提供每个已解析事物的字节偏移量(例如,在解释 reloc 时需要用)。

解释和编译 WebAssembly

wasmi | crates.io | 储存库

一个来自 Parity 的可嵌入式 WebAssembly 解释器。

cranelift-wasm | crates.io | 储存库

将 WebAssembly 编译到本机主机的机器代码。Cranelift(原为 Cretonne)代码生成器项目的一部分。