8 stable releases

2.2.0 Oct 30, 2025
2.1.0 Sep 25, 2025
1.2.0 Aug 13, 2025
1.1.0 Jul 17, 2025

#641 in WebAssembly

Download history 1920/week @ 2025-10-27 991/week @ 2025-11-03 696/week @ 2025-11-10 871/week @ 2025-11-17 1108/week @ 2025-11-24 1188/week @ 2025-12-01 1003/week @ 2025-12-08 1011/week @ 2025-12-15 296/week @ 2025-12-22 207/week @ 2025-12-29 952/week @ 2026-01-05 994/week @ 2026-01-12 1217/week @ 2026-01-19 1681/week @ 2026-01-26 1094/week @ 2026-02-02 1176/week @ 2026-02-09

5,177 downloads per month
Used in canfuzz

Apache-2.0

490KB
11K SLoC

Wirm 🐉

Wirm is a WebAssembly IR Manipulation Library for the Component Model.

NOTE: This project used to be known as Orca, see discussion on refactor here.

It is based on Dfinity's IC codebase and Walrus.

About

Wirm is a light-weight, easy-to-use, Rust Library for performing WebAssembly transformations. It uses wasmparser and wasm_encoder to parse and encode Wasm components/modules and maintains its own Intermediate Representation.

Cargo Features

Parallel Processing

Wirm supports parallel processing during module parsing and encoding to improve performance for modules with many functions. This feature uses rayon to process function bodies concurrently.

Enable the feature by adding the parallel feature to your Cargo.toml:

[dependencies]
wirm = { version = "1.1.0", features = ["parallel"] }

Environment Setup

To install wasm-tools:

$ cargo install wasm-tools

Dependencies

~4–10MB
~223K SLoC