42 releases (13 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

#1965 in Cryptography

Download history 6255/week @ 2024-10-26 5765/week @ 2024-11-02 5677/week @ 2024-11-09 5316/week @ 2024-11-16 7081/week @ 2024-11-23 7190/week @ 2024-11-30 6927/week @ 2024-12-07 5861/week @ 2024-12-14 1997/week @ 2024-12-21 2000/week @ 2024-12-28 6124/week @ 2025-01-04 6040/week @ 2025-01-11 7455/week @ 2025-01-18 6723/week @ 2025-01-25 8093/week @ 2025-02-01 7699/week @ 2025-02-08

31,248 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
~151K SLoC