Skip to content

Tags: ooyeku/wick

Tags

v0.1.0

Toggle v0.1.0's commit message
wick v0.1.0

A small, dependency-free WebAssembly interpreter for embedding plugin
systems in Zig applications.

Runs wasm 1.0 core modules by direct interpretation — no JIT, no
codegen, no libc. An std.mem.Allocator is the only thing it asks of
its host. Function bodies are translated once at decode time into
pre-decoded IR and executed by a threaded-dispatch loop over
preallocated stacks; nothing inside the interpreter loop allocates.

Host imports are the only way out of the sandbox, and per-instance
Limits bound instruction fuel, call depth, value-stack size, and
linear memory. Typed bindings cross the boundary in both directions:
wick.bind for host functions, wick.guest.func for guest exports.

Requires Zig 0.16.0 or newer.