46 releases (16 stable)

new 1.4.0-rc.1 Mar 7, 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

#1547 in Cryptography

Download history 5428/week @ 2024-11-18 7008/week @ 2024-11-25 7970/week @ 2024-12-02 6159/week @ 2024-12-09 5751/week @ 2024-12-16 1856/week @ 2024-12-23 2173/week @ 2024-12-30 6236/week @ 2025-01-06 6021/week @ 2025-01-13 7339/week @ 2025-01-20 7061/week @ 2025-01-27 8235/week @ 2025-02-03 7885/week @ 2025-02-10 8886/week @ 2025-02-17 8991/week @ 2025-02-24 7293/week @ 2025-03-03

33,459 downloads per month
Used in 21 crates (3 directly)

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

3.5MB
57K SLoC

Rust 29K SLoC // 0.0% 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

~4–14MB
~186K SLoC