3 releases (breaking)

new 0.9.0 Dec 6, 2024
0.8.0 Dec 5, 2024
0.7.0 Nov 25, 2024

#369 in Rust patterns

Download history 95/week @ 2024-11-19 59/week @ 2024-11-26 464/week @ 2024-12-03

618 downloads per month
Used in 9 crates (via essential-check)

Apache-2.0

245KB
5.5K SLoC

essential-vm

Crates.io Documentation license Build Status

The Essential VM.


lib.rs:

The essential VM implementation.

Reading State

The primary entrypoint for this crate is the [Vm type][Vm].

The Vm allows for executing arbitrary [essential ASM][asm] ops. The primary use-case is executing Programs that make up a Predicate's program graph during Solution validation.

Executing Ops

There are three primary methods available for executing operations:

Each have slightly different performance implications, so be sure to read the docs before selecting a method.

Execution Future

The Vm::exec_* functions all return Futures that not only yield on async operations, but yield based on a user-specified gas limit too. See the ExecFuture docs for further details on the implementation.

Dependencies

~11MB
~167K SLoC