60 releases (24 stable)

Uses new Rust 2024

5.0.0-rc.1 Jan 14, 2026
4.0.4 Feb 3, 2026
4.0.3 Nov 24, 2025
4.0.0-rc.2 Jul 25, 2025
0.19.1 Nov 9, 2023

#7 in #lift

Download history 10178/week @ 2025-10-14 7395/week @ 2025-10-21 10446/week @ 2025-10-28 16259/week @ 2025-11-04 7852/week @ 2025-11-11 7350/week @ 2025-11-18 10276/week @ 2025-11-25 10471/week @ 2025-12-02 14650/week @ 2025-12-09 13383/week @ 2025-12-16 5128/week @ 2025-12-23 7314/week @ 2025-12-30 11338/week @ 2026-01-06 13027/week @ 2026-01-13 15301/week @ 2026-01-20 12828/week @ 2026-01-27

54,557 downloads per month
Used in 46 crates (4 directly)

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

8.5MB
62K SLoC

Rust 29K SLoC // 0.0% comments CUDA 14K SLoC // 0.3% comments C++ 13K SLoC // 0.4% comments Metal Shading Language 3.5K SLoC // 0.5% 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

~9–19MB
~271K SLoC