# `tinywasm-parser`
This crate provides the parser and lowering pipeline that converts WebAssembly binaries into `tinywasm` modules.
## Features
- `std`: Enables the use of `std` and `std::io` for parsing from files and streams.
- `log`: Enables logging of the parsing process using the `log` crate.
- `parallel`: Enables multithreaded parsing and validation when `std` is available.
## Usage
```rust
use tinywasm_parser::{Parser, ParserOptions};
let bytes = include_bytes!("./file.wasm");
let parser = Parser::new();
let module = parser.parse_module_bytes(bytes)?;
let parser = Parser::with_options(ParserOptions::default().with_rewrite_optimization(false));
let module = parser.parse_module_bytes(bytes)?;
let module = parser.parse_module_file("path/to/file.wasm")?;
let mut stream = std::fs::File::open("path/to/file.wasm")?;
let module = parser.parse_module_stream(&mut stream)?;
```
If you just want the default configuration, the top-level `parse_bytes`, `parse_file`, and `parse_stream` helpers are thin wrappers around `Parser::new()`.