181 releases (stable)

Uses new Rust 2024

44.0.1 Apr 30, 2026
43.0.2 Apr 30, 2026
43.0.0 Mar 20, 2026
42.0.2 Apr 9, 2026
0.15.0 Mar 31, 2020

#2653 in WebAssembly

Download history 94643/week @ 2026-01-23 101945/week @ 2026-01-30 94883/week @ 2026-02-06 126097/week @ 2026-02-13 131278/week @ 2026-02-20 161302/week @ 2026-02-27 184049/week @ 2026-03-06 162614/week @ 2026-03-13 150713/week @ 2026-03-20 158601/week @ 2026-03-27 154585/week @ 2026-04-03 175083/week @ 2026-04-10 190349/week @ 2026-04-17 206923/week @ 2026-04-24 207140/week @ 2026-05-01 245794/week @ 2026-05-08

880,281 downloads per month
Used in 266 crates (22 directly)

Apache-2.0 WITH LLVM-exception

5.5MB
92K SLoC

wiggle

Wiggle is a code generator for the host side of a witx interface. It is invoked as a Rust procedural macro.

Wiggle is not specialized to any particular WebAssembly runtime. It is usable in at least Wasmtime and Lucet.

Learning more

Read the docs on docs.rs.

There are child crates for integrating with Wasmtime (this crate), and Lucet.

The wasi-common crate is implemented using Wiggle and the wasmtime-wasi crate integrates wasi-common with the Wasmtime engine.

Andrew Brown wrote a great blog post on using Wiggle with Wasmtime.

Dependencies

~15–22MB
~379K SLoC