[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.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"