[package]
edition = "2024"
rust-version = "1.88.0"
name = "snarkvm"
version = "4.5.0"
authors = ["The Aleo Team <hello@aleo.org>"]
build = false
include = [
"Cargo.toml",
"vm",
"README.md",
"LICENSE.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A decentralized virtual machine"
homepage = "https://aleo.org"
readme = "README.md"
keywords = [
"aleo",
"cryptography",
"blockchain",
"decentralized",
"zero-knowledge",
]
categories = [
"compilers",
"cryptography",
"mathematics",
"wasm",
"web-programming",
]
license = "Apache-2.0"
repository = "https://github.com/ProvableHQ/snarkVM"
[features]
algorithms = ["snarkvm-algorithms"]
async = [
"snarkvm-ledger/async",
"snarkvm-synthesizer/async",
]
circuit = ["snarkvm-circuit"]
console = ["snarkvm-console"]
cuda = ["snarkvm-algorithms/cuda"]
curves = ["snarkvm-curves"]
default = [
"algorithms",
"circuit",
"console",
"ledger",
"parameters",
"synthesizer",
"utilities",
"package",
"file",
]
dev-print = [
"snarkvm-utilities/dev-print",
"snarkvm-algorithms/dev-print",
"snarkvm-circuit/dev-print",
"snarkvm-curves/dev-print",
"snarkvm-fields/dev-print",
"snarkvm-parameters/dev-print",
"snarkvm-synthesizer/dev-print",
]
dev_skip_checks = [
"snarkvm-console/dev_skip_checks",
"snarkvm-synthesizer/dev_skip_checks",
]
fields = ["snarkvm-fields"]
file = [
"console",
"synthesizer",
"dep:serde_json",
]
full = [
"default",
"curves",
"fields",
]
history = ["snarkvm-synthesizer/history"]
ledger = ["snarkvm-ledger"]
locktick = [
"snarkvm-algorithms?/locktick",
"snarkvm-ledger?/locktick",
"snarkvm-parameters?/locktick",
"snarkvm-synthesizer?/locktick",
]
metrics = [
"snarkvm-metrics",
"snarkvm-ledger/metrics",
]
noconfig = []
package = [
"algorithms",
"circuit",
"file",
"ledger",
"snarkvm-console/filesystem",
"dep:ureq",
"dep:dotenvy",
]
parameters = ["snarkvm-parameters"]
parameters_no_std_out = ["snarkvm-parameters/no_std_out"]
rocks = [
"snarkvm-ledger/rocks",
"snarkvm-synthesizer/rocks",
]
save_r1cs_hashes = ["snarkvm-circuit/save_r1cs_hashes"]
serial = [
"snarkvm-algorithms?/serial",
"snarkvm-console?/serial",
"snarkvm-curves?/serial",
"snarkvm-fields?/serial",
"snarkvm-utilities/serial",
"snarkvm-ledger?/serial",
]
synthesizer = ["snarkvm-synthesizer"]
test = ["snarkvm-ledger/test"]
test-helpers = ["snarkvm-ledger/test-helpers"]
test_consensus_heights = [
"snarkvm-console/test_consensus_heights",
"snarkvm-synthesizer/test_consensus_heights",
]
test_exports = ["snarkvm-algorithms/test_exports"]
test_targets = ["snarkvm-console/test_targets"]
timer = ["snarkvm-ledger/timer"]
utilities = ["snarkvm-utilities"]
wasm = ["snarkvm-wasm"]
[lib]
name = "snarkvm"
path = "vm/lib.rs"
[dependencies.anyhow]
version = "1.0.73"
features = ["backtrace"]
[dependencies.dotenvy]
version = "0.15"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]
optional = true
[dependencies.snarkvm-algorithms]
version = "=4.5.0"
optional = true
default-features = false
[dependencies.snarkvm-circuit]
version = "=4.5.0"
optional = true
[dependencies.snarkvm-console]
version = "=4.5.0"
features = ["default"]
optional = true
default-features = false
[dependencies.snarkvm-curves]
version = "=4.5.0"
optional = true
default-features = false
[dependencies.snarkvm-fields]
version = "=4.5.0"
optional = true
default-features = false
[dependencies.snarkvm-ledger]
version = "=4.5.0"
optional = true
[dependencies.snarkvm-metrics]
version = "=4.5.0"
optional = true
[dependencies.snarkvm-parameters]
version = "=4.5.0"
optional = true
[dependencies.snarkvm-synthesizer]
version = "=4.5.0"
optional = true
[dependencies.snarkvm-utilities]
version = "=4.5.0"
optional = true
[dependencies.snarkvm-wasm]
version = "=4.5.0"
optional = true
[dependencies.ureq]
version = "3"
features = ["json"]
optional = true
default-features = true
[dev-dependencies.bincode]
version = "1.3.3"
[dev-dependencies.rusty-hook]
version = "0.11.2"
[dev-dependencies.tempfile]
version = "3.15"
[build-dependencies.walkdir]
version = "2"
[profile.bench]
opt-level = 3
lto = "thin"
debug = 0
debug-assertions = false
rpath = false
incremental = true
[profile.dev]
opt-level = 3
lto = "off"
incremental = true
[profile.release]
opt-level = 3
lto = "thin"
incremental = true
[profile.test]
opt-level = 3
lto = "thin"
debug = 2
debug-assertions = true
incremental = true