你应该知道的箱子
这是一个精选的优秀箱子列表,你应该了解它们,以便进行 Rust 和 WebAssembly 开发。
你也可以浏览发布到 crates.io 的所有 WebAssembly 类别的箱子。
与 JavaScript 和 DOM 交互
wasm-bindgen
| crates.io | repository
wasm-bindgen
促进了 Rust 和 JavaScript 之间的高级交互。它允许将 JavaScript 内容导入 Rust,并将 Rust 内容导出到 JavaScript。
wasm-bindgen-futures
| crates.io | repository
wasm-bindgen-futures
是连接 JavaScript Promise
和 Rust Future
的桥梁。它可以双向转换,在 Rust 中处理异步任务时非常有用,并允许与 DOM 事件和 I/O 操作进行交互。
js-sys
| crates.io | repository
所有 JavaScript 全局类型和方法的原始 wasm-bindgen
导入,例如 Object
、Function
、eval
等。这些 API 在所有标准 ECMAScript 环境中都是可移植的,不仅仅是 Web,例如 Node.js。
web-sys
| crates.io | repository
所有 Web API 的原始 wasm-bindgen
导入,例如 DOM 操作、setTimeout
、Web GL、Web Audio 等。
错误报告和日志记录
console_error_panic_hook
| crates.io | repository
这个箱子允许你在 wasm32-unknown-unknown
上调试 panic,通过提供一个 panic hook,将 panic 消息转发到 console.error
。
console_log
| crates.io | repository
这个箱子为 log
箱子 提供了一个后端,将日志消息路由到开发者工具控制台。
动态分配
wee_alloc
| crates.io | repository
Wasm-Enabled, Elfin Allocator。当代码大小比分配性能更重要时,一个小型(~1K 未压缩 .wasm
)分配器实现。
解析和生成 .wasm
二进制文件
parity-wasm
| crates.io | repository
用于序列化、反序列化和构建 .wasm
二进制文件的低级 WebAssembly 格式库。对众所周知的自定义部分有很好的支持,例如“names”部分和“reloc.WHATEVER”部分。
wasmparser
| crates.io | repository
一个用于解析 WebAssembly 二进制文件的简单、事件驱动的库。提供每个解析项目的字节偏移量,这在解释 relocs 时是必要的,例如。
解释和编译 WebAssembly
wasmi
| crates.io | repository
来自 Parity 的一个可嵌入的 WebAssembly 解释器。
cranelift-wasm
| crates.io | repository
将 WebAssembly 编译为本地主机的机器代码。是 Cranelift(原名 Cretonne)代码生成器项目的一部分。