include_wit_macro 0.1.0

Macro implementation for embedding WIT data into application binaries.
Documentation

include_wit

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.

Usage

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

fn main() {
    // 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 {
        println!("{x:?}");
    }
}

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.