[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.0" sapling-crypto = "0.5.0" zcash_address = "0.7.0" zcash_client_backend = "0.18" zcash_encoding = "0.3.0" zcash_history = "0.4.0" zcash_keys = "0.8" zcash_primitives = "0.22.0" zcash_proofs = "0.22.0" zcash_transparent = "0.2.3" zcash_protocol = "0.5.1" zip32 = "0.2" abscissa_core = "0.7.0" atty = "0.2.14" base64 = "0.22.1" bech32 = "0.11.0" bellman = "0.14.0" bincode = "1.3.3" bitflags = "2.9.0" bitflags-serde-legacy = "0.1.1" bitvec = "1.0.1" blake2b_simd = "1.0.3" blake2s_simd = "1.0.3" bls12_381 = "0.8.0" bs58 = "0.5.1" byteorder = "1.5.0" bytes = "1.10.1" chrono = { version = "0.4.40", default-features = false } clap = "4.5.35" color-eyre = { version = "0.6.3", default-features = false } console-subscriber = "0.4.0" criterion = "0.5.1" crossbeam-channel = "0.5.14" dirs = "6.0.0" ed25519-zebra = "4.0.3" elasticsearch = { version = "8.17.0-alpha.1", default-features = false } equihash = "0.2.2" ff = "0.13.1" futures = "0.3.31" futures-core = "0.3.28" futures-util = "0.3.28" group = "0.13.0" halo2 = "0.3.0" hex = "0.4.3" hex-literal = "0.4.1" howudoin = "0.1.2" http-body-util = "0.1.3" human_bytes = { version = "0.4.3", default-features = false } humantime = "2.2.0" humantime-serde = "1.1.1" hyper = "1.6.0" hyper-util = "0.1.11" indexmap = "2.8.0" indicatif = "0.17.11" inferno = { version = "0.12.2", default-features = false } insta = "1.42.2" itertools = "0.14.0" jsonrpc = "0.18.0" jsonrpsee = "0.24.8" jsonrpsee-proc-macros = "0.24.9" jsonrpsee-types = "0.24.9" jubjub = "0.10.0" lazy_static = "1.4.0" log = "0.4.27" metrics = "0.24.1" metrics-exporter-prometheus = { version = "0.16.2", default-features = false } mset = "0.1.1" nix = "0.29.0" num-integer = "0.1.46" once_cell = "1.21.3" ordered-map = "0.4.2" owo-colors = "4.2.0" pin-project = "1.1.10" primitive-types = "0.12.2" proptest = "1.6.0" proptest-derive = "0.5.1" prost = "0.13.5" quote = "1.0.40" rand = "0.8.5" rand_chacha = "0.3.1" rand_core = "0.6.4" rayon = "1.10.0" reddsa = "0.5.1" redjubjub = "0.8" regex = "1.11.0" reqwest = { version = "0.12.15", default-features = false } ripemd = "0.1.3" rlimit = "0.10.2" rocksdb = { version = "0.22.0", default-features = false } secp256k1 = "0.29" semver = "1.0.26" sentry = { version = "0.36.0", default-features = false } serde = "1.0.219" serde-big-array = "0.5.1" serde_json = "1.0.140" serde_with = "3.12.0" serde_yml = "0.0.12" sha2 = "0.10.7" spandoc = "0.2.2" static_assertions = "1.1.0" structopt = "0.3.26" syn = "2.0.100" tempfile = "3.19.1" thiserror = "2.0.12" thread-priority = "1.2.0" tinyvec = "1.9.0" tokio = "1.44.2" tokio-stream = "0.1.17" tokio-test = "0.4.4" tokio-util = "0.7.14" toml = "0.8.20" tonic = "0.12.3" tonic-build = "0.12.3" tonic-reflection = "0.12.3" tower = "0.4.13" tower-test = "0.4.0" tracing = "0.1.41" tracing-appender = "0.2.3" tracing-error = "0.2.1" tracing-flame = "0.2.0" tracing-futures = "0.2.5" tracing-journald = "0.3.0" tracing-subscriber = "0.3.19" tracing-test = "0.2.4" uint = "0.10.0" vergen-git2 = { version = "1.0.0", default-features = false } wagyu-zcash-parameters = "0.2.0" x25519-dalek = "2.0.1" zcash_note_encryption = "0.4.1" zcash_script = "0.2.0" [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"