#wasm-interface #wit #applications #embedding #macro #binaries #data


Macro for embedding WIT data into application binaries

4 releases

0.1.3 Feb 11, 2024
0.1.2 Aug 30, 2023
0.1.1 Aug 30, 2023
0.1.0 Aug 30, 2023

#1086 in WebAssembly

21 downloads per month




Crates.io Docs.rs Unsafe Forbidden

include_wit allows for embedding wit_parser::Resolve instances into an application binary. It exposes a single macro which parses a WIT file or directory, and generates a WASM binary to include in the source code. This WASM binary is then parsed at runtime upon first access.


The following is a simple example of how to use include_wit. The full example may be found in the examples folder.

// Embed the WIT folder into this application
let resolve = include_wit::include_wit!("wit");

// Print all interfaces in the resolve
for x in &resolve.interfaces {

Optional features

relative_path (requires nightly) - Makes all included WIT paths relative to the file where the macro is invoked.

track_path (requires nightly) - Tracks the included WIT files for changes, causing recompilation automatically when they are edited.


~112K SLoC