你应该知道的Crates
这是您在进行 Rust 和 WebAssembly 开发时应该了解的很棒的 crate 的精选列表。
您还可以在 WebAssembly 类别中浏览所有发布到 crates.io 的 crate.
与 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
s 和 Rust Future
s 的桥梁。 它可以双向转换,在 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
这个 crate 允许你通过提供一个将 panic 消息转发到 console.error
的 panic 钩子来调试 wasm32-unknown-unknown
上的 panics。
console_log
| crates.io | repository
此 crate 为 the log
crate 提供后端,将记录的消息路由到 devtools 控制台。
动态分配
wee_alloc
| crates.io | repository
Wasm-Enabled,Elfin 分配器。 当代码大小比分配性能更受关注时,一个小的(~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 (né Cretonne) 代码生成器项目的一部分。