[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" 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 } x25519-dalek = "2.0.1" zcash_note_encryption = "0.4.1" zcash_script = "0.2" [patch.crates-io] sapling-crypto = { path = "../sapling-crypto" } zcash_primitives = { path = "../librustzcash/zcash_primitives" } zcash_address = { path = "../librustzcash/components/zcash_address" } zcash_client_backend = { path = "../librustzcash/zcash_client_backend" } zcash_encoding = { path = "../librustzcash/components/zcash_encoding" } zcash_history = { path = "../librustzcash/zcash_history" } zcash_keys = { path = "../librustzcash/zcash_keys" } zcash_proofs = { path = "../librustzcash/zcash_proofs" } zcash_transparent = { path = "../librustzcash/zcash_transparent" } zcash_protocol = { path = "../librustzcash/components/zcash_protocol" } [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"