Cargo Features

[dependencies]
zksync_bellman = { version = "0.30.6", default-features = false, features = ["multicore", "sonic", "gm17", "nolog", "plonk", "redshift", "marlin", "wasm", "asm", "allocator", "prefetch"] }
default = allocator, multicore, plonk

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

multicore default redshift? = crossbeam

Enables thread-pool of futures

sonic = blake2-rfc, tiny-keccak

Affects zksync_bellman::sonic

gm17

Affects zksync_bellman::gm17

nolog
plonk default redshift? = lazy_static, tiny-keccak

Affects zksync_bellman::plonk, zksync_bellman::kate_commitment

redshift = multicore, plonk

Affects better_better_cs::redshift

marlin = tiny-keccak

Affects zksync_bellman::marlin, zksync_bellman::kate_commitment

wasm = web-sys
asm

Enables asm of zksync_pairing

allocator default

Affects cs::PolynomialStorage.state_map, cs::PolynomialStorage.setup_map, cs::Assembly.inputs_storage, cs::Assembly.aux_storage, cs::Assembly.aux_assingments, cs::Assembly.individual_table_entries, cs::Assembly.reusable_buffer_for_lookup_entries

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

crossbeam multicore
prefetch implicit feature

Enables prefetch

prefetch:

prefetch provides a type-safe wrapper around LLVM's prefetch intrinsic

web-sys wasm?
tiny-keccak marlin? plonk sonic?

Enables tiny-keccak ^1.5

blake2-rfc sonic?
lazy_static plonk