38 releases (10 stable)

new 1.2.1-rc.1 Jan 10, 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

#1868 in Cryptography

Download history 6583/week @ 2024-09-24 4998/week @ 2024-10-01 3825/week @ 2024-10-08 3246/week @ 2024-10-15 5630/week @ 2024-10-22 5817/week @ 2024-10-29 6168/week @ 2024-11-05 5118/week @ 2024-11-12 6509/week @ 2024-11-19 6441/week @ 2024-11-26 8262/week @ 2024-12-03 5812/week @ 2024-12-10 5180/week @ 2024-12-17 1710/week @ 2024-12-24 2666/week @ 2024-12-31 5339/week @ 2025-01-07

15,947 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