Skip to content

Releases: maatlabs/ananse

Release list

WASM-native zkVM

Choose a tag to compare

@kobby-pentangeli kobby-pentangeli released this 05 Jul 10:23
88b54c8

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), and ananse (the CLI and library facade).
  • The ananse run command. Decodes, lifts, and executes a .wasm or .wat module, printing its result and any WASI journal. Supports --invoke <export>, positional integer arguments (signed or unsigned decimal, or 0x hex), and a --verbose execution summary. A module exporting _start runs in command mode and adopts the guest's proc_exit status.
  • A library facade. The ananse crate re-exports every member crate under a short module and adds a Runtime (instantiate / instantiate_with_wasi / call) plus a prelude, so a caller has one entry point instead of threading the pipeline by hand.
  • The full integer subset of WebAssembly-MVP, executed directly: i32 / i64 arithmetic (including mul, 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.