#wasm-binary #wasm-module #binary-file #event-driven #binary-parser #parser

无需std wasmparser-nostd

解析WebAssembly二进制文件的事件驱动库

8个版本 (破坏性更新)

0.100.2 2024年4月21日
0.100.1 2023年2月11日
0.99.0 2023年2月1日
0.91.0 2022年9月21日
0.82.0 2022年1月22日

#46 in WebAssembly

Download history 42264/week @ 2024-04-26 44767/week @ 2024-05-03 48994/week @ 2024-05-10 50165/week @ 2024-05-17 60644/week @ 2024-05-24 59187/week @ 2024-05-31 54139/week @ 2024-06-07 59817/week @ 2024-06-14 64406/week @ 2024-06-21 52809/week @ 2024-06-28 52470/week @ 2024-07-05 69437/week @ 2024-07-12 68920/week @ 2024-07-19 70244/week @ 2024-07-26 67372/week @ 2024-08-02 66898/week @ 2024-08-09

284,812 每月下载量
用于 195 个Crates(直接使用7个)

Apache-2.0 WITH LLVM-exception

660KB
14K SLoC

这是一个来自wasmparser crate的分支,由Bytecode Alliance维护,目的是为了添加no_std支持,重点关注嵌入式环境。

当原始的wasmparser crate本身支持no_std时,此crate将被弃用。

注意:自版本0.99.0及以上,由于url crate本身不支持no_std编译,因此将Url类型从url crate替换为简单的String,以将整个crate移植到no_std

Rust中的WebAssembly二进制文件解码器

Bytecode Alliance项目

crates.io link docs.rs docs

解码库提供了对WebAssembly二进制文件的轻量级和快速的解码/解析。

另一个目标是最小化内存占用。因此,没有WebAssembly数据的AST或IR。

另见其兄弟项目https://github.com/wasdk/wasmparser

文档

文档和示例可以在https://docs.rs/wasmparser/找到

模糊测试

要模糊测试wasmparser.rs,切换到nightly Rust编译器并安装cargo-fuzz

cargo install cargo-fuzz

然后,从仓库的根目录运行

cargo fuzz run parse

如果您想将文件作为fuzzer的种子,请将它们添加到fuzz/corpus/parse/,并重新启动cargo-fuzz。

依赖关系