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

no-std wasmparser-nostd

A simple event-driven library for parsing WebAssembly binary files

8 releases (breaking)

0.100.2 Apr 21, 2024
0.100.1 Feb 11, 2023
0.99.0 Feb 1, 2023
0.91.0 Sep 21, 2022
0.82.0 Jan 22, 2022

#12 in WebAssembly

Download history 74502/week @ 2024-11-17 68803/week @ 2024-11-24 69838/week @ 2024-12-01 78458/week @ 2024-12-08 75169/week @ 2024-12-15 32093/week @ 2024-12-22 41255/week @ 2024-12-29 72541/week @ 2025-01-05 98379/week @ 2025-01-12 85510/week @ 2025-01-19 74516/week @ 2025-01-26 79900/week @ 2025-02-02 85084/week @ 2025-02-09 82480/week @ 2025-02-16 75307/week @ 2025-02-23 70505/week @ 2025-03-02

318,607 downloads per month
Used in 236 crates (6 directly)

Apache-2.0 WITH LLVM-exception

660KB
14K SLoC

This is a fork of the wasmparser crate by the Bytecode Alliance with the sole purpose to add no_std support with a focus on embedded environments.

This crate will be deprecated as soon as the original wasmparser crate itself supports no_std.

Note: As of version 0.99.0 and above the Url type from the url crate was replaced with a simple String in order to port the entire crate to no_std. This is because the complex url crate itself does not support no_std compilation.

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