ananse-v0.2.0
First stable release
A ground-up rebuild from the v0.1.x tutorial runtime into a WebAssembly-native zero-knowledge virtual machine. Ananse now executes any program in the integer subset of WebAssembly-MVP end to end through a register-shaped engine built for STARK proving, exposed behind a new ananse run command and a library Runtime. This release executes and journals; it does not yet produce proofs---the FRI STARK prover and the prove / verify flow are the focus of the next release.
Added
- A workspace of focused, independently documented crates:
ananse_decoder(validating WebAssembly frontend),ananse_lift(static stack-to-register lift),ananse_executor(schedule-driven interpreter),ananse_trace(unified access-log trace),ananse_air(register-shaped AIR),ananse_wasi(deterministic minimal WASI), andananse(the CLI and library facade). - The
ananse runcommand. Decodes, lifts, and executes a.wasmor.watmodule, printing its result and any WASI journal. Supports--invoke <export>, positional integer arguments (signed or unsigned decimal, or0xhex), and a--verboseexecution summary. A module exporting_startruns in command mode and adopts the guest'sproc_exitstatus. - A library facade. The
anansecrate re-exports every member crate under a short module and adds aRuntime(instantiate/instantiate_with_wasi/call) plus aprelude, so a caller has one entry point instead of threading the pipeline by hand. - The full integer subset of WebAssembly-MVP, executed directly:
i32/i64arithmetic (includingmul,div,rem), comparisons, bitwise and bit-counting operators, conversions, locals, globals, linear memory, structured control flow, and recursive function calls. - A register-shaped AIR over the Goldilocks field, built on Plonky3, that a run is constraint-checked against: unified value-bus and address-sorted access-log consistency, byte-table range checks, a boundary argument binding fresh reads to public inputs, the program-ROM control-flow lookup, and the per-operator value relations. Built ahead of the prover.
- A deterministic minimal WASI (
fd_write,proc_exit) that never touches the operating system, keeping every run reproducible. - Curated example programs under
examples/: a Fibonacci recurrence, factorial, greatest common divisor, an FNV-1a hash round, modular exponentiation, a CRC-32 checksum, and a Merkle-path fold.