33 releases (9 stable)

1.1.3 Nov 9, 2024
1.1.1 Sep 24, 2024
1.0.5 Jul 30, 2024
0.21.0 Mar 12, 2024
0.19.1 Nov 9, 2023

#1889 in Cryptography

Download history 4485/week @ 2024-07-29 3907/week @ 2024-08-05 3057/week @ 2024-08-12 3213/week @ 2024-08-19 4283/week @ 2024-08-26 4479/week @ 2024-09-02 5297/week @ 2024-09-09 4845/week @ 2024-09-16 6053/week @ 2024-09-23 5502/week @ 2024-09-30 3737/week @ 2024-10-07 3483/week @ 2024-10-14 4919/week @ 2024-10-21 6243/week @ 2024-10-28 5938/week @ 2024-11-04 5569/week @ 2024-11-11

22,749 downloads per month
Used in 12 crates (2 directly)

Apache-2.0 and maybe LGPL-3.0-or-later

3.5MB
57K SLoC

Rust 29K SLoC // 0.1% comments C++ 14K SLoC // 0.4% comments CUDA 6K SLoC // 0.0% comments Metal Shading Language 6K SLoC // 0.0% comments Bitbake 1.5K SLoC // 0.0% comments

The recursion VM is a non-Turing-complete virtual machine (VM) optimized for algebraic constraint checking. In particular, it is well-tuned for verifying STARKs.

The recursion VM runs "recursion programs", which define the functionality it will implement. As examples, the [lift], [join], and [resolve] programs are used by the risc0 ZkVM to compress a collection of STARK receipts for a composition into a single succinct receipt.

This is a low-level interface; users should prefer to use the risc0_zkvm crate.

Dependencies

~3–12MB
~151K SLoC