Cargo Features

[dependencies]
risc0-zkvm = { version = "1.2.0-rc.1", default-features = false, features = ["client", "bonsai", "cuda", "disable-dev-mode", "docker", "dual", "getrandom", "heap-embedded-alloc", "std", "metal", "prove", "redis", "unstable"] }
default = bonsai, client

These default features are set whenever risc0-zkvm is added without default-features = false somewhere in the dependency tree.

client default prove? = std

Enables bincode, bytes, lazy-regex, prost, risc0-build, and tempfile

bonsai default

Enables bonsai-sdk

cuda = prove

Enables cuda of risc0-circuit-recursion, risc0-circuit-rv32im, and risc0-zkp

disable-dev-mode
docker

This flag uses the docker environment to build test guests such as multi-test to ensure accurate cycle and segment counts. Tests that have been gated on this flag measure cycles and segments. Without this flag, the rust build system will generate binaries that not identical across all architectures.
While this is acceptable for most tests, the tests counting cycles and segments will fail intermittently. It does not effect non-test code.

dual
getrandom

The zkVM exposes a getrandom implementation that panics by default. This will expose a getrandom implementation that uses the sys_random ecall.

Enables getrandom of risc0-zkvm-platform

heap-embedded-alloc

The zkVM uses a bump-pointer heap allocator by default which does not free memory. This will use a slower linked-list heap allocator to reclaim memory.

Enables heap-embedded-alloc of risc0-zkvm-platform

std client prove?

Enables std of anyhow, hex, risc0-binfmt, risc0-groth16, risc0-zkp, serde, and sha2

serde:

Provide impls for common standard library types like Vec<T> and HashMap<K, V>.
Requires a dependency on the Rust standard library.

Affects env::read_buffered, risc0-zkvm::is_dev_mode

metal = prove
prove cuda? metal? = client, std

Enables rustc-demangle, tempfile, and typetag, addr2line ^0.22, bincode, elf, lazy-regex, num-bigint, num-traits, prost, rand, and rayon, perf of risc0-core, prove of risc0-circuit-recursion and risc0-circuit-rv32im, prove of risc0-groth16 and risc0-zkp

redis

Enables redis

unstable

Enables unstable of risc0-zkvm-platform

Affects env::keccak_digest, env::KECCAK_BATCHER