#wit #applications #embedding #binaries #macro #data #include-wit

macro include_wit_macro

Macro implementation 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

#60 in #wit

30 downloads per month
Used in include_wit

MIT/Apache

7KB
72 lines

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.

// 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.

Dependencies

~7MB
~123K SLoC