43 releases (14 stable)

new 1.3.0-rc.1 Feb 15, 2025
1.2.2 Jan 28, 2025
1.2.1-rc.0 Dec 9, 2024
1.2.0-rc.1 Nov 23, 2024
0.19.1 Nov 9, 2023

#1909 in Cryptography

Download history 5537/week @ 2024-10-30 5889/week @ 2024-11-06 5435/week @ 2024-11-13 6592/week @ 2024-11-20 6589/week @ 2024-11-27 8096/week @ 2024-12-04 5321/week @ 2024-12-11 4875/week @ 2024-12-18 1431/week @ 2024-12-25 3382/week @ 2025-01-01 6241/week @ 2025-01-08 7061/week @ 2025-01-15 7118/week @ 2025-01-22 7368/week @ 2025-01-29 8490/week @ 2025-02-05 6595/week @ 2025-02-12

30,732 downloads per month
Used in 21 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 145 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
~159K SLoC