The Polkadot Virtual Machine (PVM) in Rust, implemented from the JAM Gray Paper. Jamixir, an Elixir JAM client, runs it through a Rustler NIF. The crate itself has no Elixir dependency.
core: memory, registers, program and bitmask handlingencoding: program blob decoding (deblob) and encodinginit: program initialisation and memory layoutvm: instruction dispatch, single-step execution, gas, child instances, tracingexecution: entry points for disassembled and linked programs
git clone https://github.com/jamixir/jamtestvectors ../pvm-test-vectors
cargo testThe unit tests need nothing else. The vectors suite reads the PVM test vectors from
../pvm-test-vectors/pvm/programs/.
Apache-2.0 or MIT, at your option.