164 releases (90 breaking)

Uses new Rust 2021

0.91.0 Sep 21, 2022
0.89.1 Aug 17, 2022
0.88.0 Jul 27, 2022
0.83.0 Feb 17, 2022
0.7.2 Jul 7, 2017

#415 in WebAssembly

Download history 94585/week @ 2022-06-09 93742/week @ 2022-06-16 92131/week @ 2022-06-23 95996/week @ 2022-06-30 102683/week @ 2022-07-07 107438/week @ 2022-07-14 104262/week @ 2022-07-21 128877/week @ 2022-07-28 98157/week @ 2022-08-04 120638/week @ 2022-08-11 107855/week @ 2022-08-18 103039/week @ 2022-08-25 118761/week @ 2022-09-01 114933/week @ 2022-09-08 101206/week @ 2022-09-15 90693/week @ 2022-09-22

444,995 downloads per month
Used in 336 crates (68 directly)

Apache-2.0 WITH LLVM-exception

710KB
15K 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

~565KB
~10K SLoC