zebra/Cargo.toml

228 lines
5.0 KiB
TOML

[workspace]
members = [
"zebrad",
"zebra-chain",
"zebra-network",
"zebra-state",
"zebra-script",
"zebra-consensus",
"zebra-rpc",
"zebra-node-services",
"zebra-test",
"zebra-utils",
"zebra-scan",
"zebra-grpc",
"tower-batch-control",
"tower-fallback",
]
# Use the edition 2021 dependency resolver in the workspace, to match the crates
resolver = "2"
# `cargo release` settings
[workspace.dependencies]
incrementalmerkletree = { version = "0.8.2", features = ["legacy-api"] }
orchard = "0.11"
sapling-crypto = "0.5"
zcash_address = "0.7"
zcash_client_backend = "0.18"
zcash_encoding = "0.3"
zcash_history = "0.4"
zcash_keys = "0.8"
zcash_primitives = "0.22"
zcash_proofs = "0.22"
zcash_transparent = "0.2.3"
zcash_protocol = "0.5.1"
zip32 = "0.2"
abscissa_core = "0.7"
atty = "0.2.14"
base64 = "0.22.1"
bech32 = "0.11.0"
bellman = "0.14"
bincode = "1.3"
bitflags = "2.9"
bitflags-serde-legacy = "0.1.1"
bitvec = "1.0"
blake2b_simd = "1.0"
blake2s_simd = "1.0"
bls12_381 = "0.8"
bs58 = "0.5"
byteorder = "1.5"
bytes = "1.10"
chrono = { version = "0.4.40", default-features = false }
clap = "4.5"
color-eyre = { version = "0.6.3", default-features = false }
console-subscriber = "0.4"
criterion = "0.5"
crossbeam-channel = "0.5.14"
derive-getters = "0.5"
derive-new = "0.5"
dirs = "6.0"
ed25519-zebra = "4.0.3"
elasticsearch = { version = "8.17.0-alpha.1", default-features = false }
equihash = "0.2.2"
ff = "0.13"
futures = "0.3.31"
futures-core = "0.3.31"
futures-util = "0.3.31"
group = "0.13"
halo2 = "0.3"
hex = "0.4.3"
hex-literal = "0.4"
howudoin = "0.1"
http-body-util = "0.1.3"
human_bytes = { version = "0.4", default-features = false }
humantime = "2.2"
humantime-serde = "1.1"
hyper = "1.6"
hyper-util = "0.1.11"
indexmap = "2.8"
indicatif = "0.17"
inferno = { version = "0.12", default-features = false }
insta = "1.42"
itertools = "0.14"
jsonrpc = "0.18"
jsonrpsee = "0.24.8"
jsonrpsee-proc-macros = "0.24.9"
jsonrpsee-types = "0.24.9"
jubjub = "0.10"
lazy_static = "1.4"
log = "0.4.27"
metrics = "0.24"
metrics-exporter-prometheus = { version = "0.16", default-features = false }
mset = "0.1"
nix = "0.29"
num-integer = "0.1.46"
once_cell = "1.21"
ordered-map = "0.4.2"
owo-colors = "4.2.0"
pin-project = "1.1.10"
primitive-types = "0.12"
proptest = "1.6"
proptest-derive = "0.5"
prost = "0.13.5"
quote = "1.0.40"
rand = "0.8.5"
rand_chacha = "0.3"
rand_core = "0.6"
rayon = "1.10"
reddsa = "0.5"
redjubjub = "0.8"
regex = "1.11"
reqwest = { version = "0.12", default-features = false }
ripemd = "0.1"
rlimit = "0.10"
rocksdb = { version = "0.22", default-features = false }
secp256k1 = "0.29"
semver = "1.0.26"
sentry = { version = "0.36", default-features = false }
serde = "1.0.219"
serde-big-array = "0.5"
serde_json = "1.0.140"
serde_with = "3.12"
serde_yml = "0.0"
sha2 = "0.10"
spandoc = "0.2"
static_assertions = "1.1"
structopt = "0.3"
syn = "2.0.100"
tempfile = "3.19"
thiserror = "2.0"
thread-priority = "1.2"
tinyvec = "1.9"
tokio = "1.44"
tokio-stream = "0.1.17"
tokio-test = "0.4"
tokio-util = "0.7.14"
toml = "0.8"
tonic = "0.12.3"
tonic-build = "0.12.3"
tonic-reflection = "0.12.3"
tower = "0.4.13"
tower-test = "0.4"
tracing = "0.1.41"
tracing-appender = "0.2"
tracing-error = "0.2"
tracing-flame = "0.2"
tracing-futures = "0.2.5"
tracing-journald = "0.3"
tracing-subscriber = "0.3.19"
tracing-test = "0.2.4"
uint = "0.10"
vergen-git2 = { version = "1.0", default-features = false }
wagyu-zcash-parameters = "0.2"
x25519-dalek = "2.0.1"
zcash_note_encryption = "0.4.1"
zcash_script = "0.2"
[workspace.metadata.release]
# We always do releases from the main branch
allow-branch = ["main"]
# Compilation settings
[profile.dev]
panic = "abort"
# Speed up tests by optimizing performance-critical crates
# Cryptographic crates
[profile.dev.package.blake2b_simd]
opt-level = 3
[profile.dev.package.ff]
opt-level = 3
[profile.dev.package.group]
opt-level = 3
[profile.dev.package.pasta_curves]
opt-level = 3
[profile.dev.package.halo2_proofs]
opt-level = 3
[profile.dev.package.halo2_gadgets]
opt-level = 3
[profile.dev.package.bls12_381]
opt-level = 3
[profile.dev.package.byteorder]
opt-level = 3
[profile.dev.package.equihash]
opt-level = 3
[profile.dev.package.zcash_proofs]
opt-level = 3
[profile.dev.package.ring]
opt-level = 3
[profile.dev.package.spin]
opt-level = 3
[profile.dev.package.untrusted]
opt-level = 3
[profile.release]
panic = "abort"
# Speed up release builds and sync tests using link-time optimization.
# Some of Zebra's code is CPU-intensive, and needs extra optimizations for peak performance.
#
# TODO:
# - add "-Clinker-plugin-lto" in .cargo/config.toml to speed up release builds
# - add "-Clinker=clang -Clink-arg=-fuse-ld=lld" in .cargo/config.toml
# - also use LTO on C/C++ code:
# - use clang to compile all C/C++ code
# - add "-flto=thin" to all C/C++ code builds
# - see https://doc.rust-lang.org/rustc/linker-plugin-lto.html#cc-code-as-a-dependency-in-rust
lto = "thin"