39 releases (11 stable)

new 1.2.1 Jan 15, 2025
1.2.1-rc.0 Dec 9, 2024
1.2.0-rc.1 Nov 23, 2024
1.0.5 Jul 30, 2024
0.19.1 Nov 9, 2023

#1785 in Cryptography

Download history 5767/week @ 2024-09-27 4131/week @ 2024-10-04 3723/week @ 2024-10-11 4134/week @ 2024-10-18 6555/week @ 2024-10-25 5452/week @ 2024-11-01 5895/week @ 2024-11-08 5082/week @ 2024-11-15 7365/week @ 2024-11-22 6914/week @ 2024-11-29 7296/week @ 2024-12-06 5364/week @ 2024-12-13 2978/week @ 2024-12-20 1754/week @ 2024-12-27 4711/week @ 2025-01-03 5108/week @ 2025-01-10

15,560 downloads per month
Used in 18 crates (3 directly)

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

3.5MB
58K SLoC

Rust 30K 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 2K SLoC // 0.0% comments Jupyter Notebooks 144 SLoC // 0.3% 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–13MB
~151K SLoC