#encoder #ast

waside

An AST for WebAssembly that supports decoding, encoding, and printing

1 unstable release

0.1.0 Mar 1, 2026

#76 in #encoder


(Apache-2.0 WITH LLVM-exception)…

165KB
4K SLoC

A WebAssembly binary decoder, encoder, and WAT printer.


waside

A Rust library for loading WebAssembly binaries into an AST, with support for roundtrip encoding and WAT text printing. Designed for use in the wasm-explorer web application to display a virtualized, linkable, and searchable view of the wasm text format.

Usage

// Decode a wasm binary
let bytes = std::fs::read("module.wasm")?;
let module = waside::Module::decode(&bytes)?;

// Print to WAT text
let wat = waside::print_module(&module);

// Roundtrip: encode back to binary
let encoded = module.encode()?;

License

This project is licensed under multiple licenses:

  • Apache License 2.0
  • Apache License 2.0 with LLVM Exception
  • MIT License

See the respective LICENSE files for details.

Dependencies

~2.5MB
~56K SLoC