commit/cde26ad18895984504206b397f462476e95f2998
你应该知道的Crates
这个一个精选的用于Rust和WebAssembly开发的crates的列表。
你也可以浏览发布在crates.io的所有在WebAssembly分类下的crates。
与JavaScript和DOM互操作
wasm-bindgen
| crates.io | repository
wasm-bindgen
实现了Rust和JavaScript之间的高级别互操作。
它允许将JavaScript的内容导入到Rust和将Rust内容导出给JavaScript。
wasm-bindgen-futures
| crates.io | repository
wasm-bindgen-futures
是一个连接JavaSript的Promise
和Rust的Future
的桥梁。
它可以在两个方向执行转换并且当在Rust中执行异步任务的时候很有用,同时允许与DOM时间和I/O操作互操作。
js-sys
| crates.io | repository
原生wasm-bindgen
导入了所有JavaScript全局类型和方法,如Object
,Function
,eval
等。
这些API可以在所有标准ECMAScript环境中移植,而不仅仅是Web,例如Node.js。
web-sys
| crates.io | repository
原生的wasm-bindgen
导入了所有的Web API,比如DOM操作,setTimeout
,Web GL, Web Audio等。
错误报告和日志
console_error_panic_hook
| crates.io | repository
这个crate允许你通过提供一个转发错误消息到console.error
的钩子来在wasm32-unknown-unknown
上进行调试。
console_log
| crates.io | repository
这个crate为log
crate提供了一个后端,它能把日志消息路由到开发工具控制台。
Dynamic Allocation
wee_alloc
| crates.io | repository
Wasm-Enabled, Elfin 分配器。
一个小的(~1K未压缩的.wasm
)分配器实现,用在代码尺寸比分配性能更受关注的时候。
解析和生成.wasm
二进制文件
parity-wasm
| crates.io | repository
用于序列化,反序列化和构建.wasm
二进制文件的低级WebAssembly格式库。
wasmparser
| crates.io | repository
一个简单的事件驱动库,用于解析WebAssembly二进制文件。 提供每个已解析事物的字节偏移量,例如,在解释reloc时这是必需的。
翻译和编译WebAssembly
wasmi
| crates.io | repository
来自Parity的可嵌入WebAssembly解释器。
cranelift-wasm
| crates.io | repository
将WebAssembly编译为本机主机的机器代码。 Cranelift(néCretonne)代码生成器项目的一部分。