#parser #web-assembly #wasm

wasmparser

A simple event-driven library for parsing WebAssembly binary files

176 releases (101 breaking)

0.102.0 Mar 6, 2023
0.100.0 Feb 10, 2023
0.96.0 Dec 12, 2022
0.95.0 Nov 21, 2022
0.7.2 Jul 7, 2017

#99 in WebAssembly

Download history 95388/week @ 2022-12-02 106946/week @ 2022-12-09 104296/week @ 2022-12-16 53971/week @ 2022-12-23 73144/week @ 2022-12-30 104740/week @ 2023-01-06 109051/week @ 2023-01-13 109667/week @ 2023-01-20 113100/week @ 2023-01-27 115442/week @ 2023-02-03 120825/week @ 2023-02-10 129702/week @ 2023-02-17 132132/week @ 2023-02-24 132383/week @ 2023-03-03 129696/week @ 2023-03-10 104532/week @ 2023-03-17

520,847 downloads per month
Used in 622 crates (79 directly)

Apache-2.0 WITH LLVM-exception

680KB
14K SLoC

The WebAssembly binary file decoder in Rust

A Bytecode Alliance project

crates.io link docs.rs docs

The decoder library provides lightweight and fast decoding/parsing of WebAssembly binary files.

The other goal is minimal memory footprint. For this reason, there is no AST or IR of WebAssembly data.

See also its sibling at https://github.com/wasdk/wasmparser

Documentation

The documentation and examples can be found at the https://docs.rs/wasmparser/

Fuzzing

To fuzz test wasmparser.rs, switch to a nightly Rust compiler and install cargo-fuzz:

cargo install cargo-fuzz

Then, from the root of the repository, run:

cargo fuzz run parse

If you want to use files as seeds for the fuzzer, add them to fuzz/corpus/parse/ and restart cargo-fuzz.

Dependencies

~2.5MB
~70K SLoC