您应该知道的箱子

这是一个精选的箱子列表,关于 Rust 和 WebAssembly 开发.

您还可以浏览 WebAssembly 类别中,发布到 crates.io 的所有包.

与 JavaScript 和 DOM 交互

wasm-bindgen|crates.io|github

wasm-bindgen促进 Rust 和 JavaScript 之间的高级交互. 它允许人们将 JavaScript 内容导入 Rust 和 Rust 内容导出到 JavaScript.

js-sys|crates.io|github

原生wasm-bindgen导入所有 JavaScript 全局类型和方法,例如Object,Function,eval等. 这些 API 可以在所有标准 ECMAScript 环境 中移植,而不仅仅是 Web,例如 Node.js.

错误报告

console_error_panic_hook|crates.io|github

这个箱子让你调试wasm32-unknown-unknown的 panics,通过提供一个恐慌钩子, 来将恐慌消息转发到console.error.

动态分配

wee_alloc|crates.io|github

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

解析和生成.wasm二进制

parity-wasm|crates.io|github

用于序列化,反序列化和构建的低级 WebAssembly 格式库 - .wasm二进制文件. 对已知的自定义部分具有良好支持,例如”names”部分和”reloc.WHATEVER”部分.

wasmparser|crates.io|github

一个简单的事件驱动库,用于解析 WebAssembly 二进制文件. 例如,提供每个解析事物的字节偏移量,这在解释 reloc 时是必需的.

解释和编译 WebAssembly

wasmi|crates.io|github

来自 Parity 的可嵌入 WebAssembly 解释器.

cranelift-wasm|crates.io|github

将 WebAssembly 编译为本机主机的机器代码. Cranelift (néCretonne) 代码生成器项目的一部分.