[package] name = "zebrad" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" version = "1.0.0-beta.11" edition = "2021" # Zebra is only supported on the latest stable Rust version. Some earlier versions might work. # Zebra uses features introduced in Rust 1.58. rust-version = "1.58" repository = "https://github.com/ZcashFoundation/zebra" # make `cargo run` use `zebrad` by default # when run in the workspace directory default-run = "zebrad" [features] # In release builds, don't compile debug logging code, to improve performance. default = ["release_max_level_info"] # Production features that activate extra dependencies enable-sentry = ["sentry", "sentry-tracing"] # Production features that modify dependency behaviour # Enable additional error debugging in release builds error-debug = ["color-eyre/track-caller", "color-eyre/capture-spantrace"] # Remove verbose logging at compile-time in release or all builds. # # Release builds are defined as "cfg(not(debug_assertions))". # https://docs.rs/tracing/latest/tracing/level_filters/index.html#compile-time-filters release_max_level_warn = ["tracing/release_max_level_warn", "log/release_max_level_warn"] release_max_level_info = ["tracing/release_max_level_info", "log/release_max_level_info"] release_max_level_debug = ["tracing/release_max_level_debug", "log/release_max_level_debug"] max_level_warn = ["tracing/max_level_warn", "log/max_level_warn"] max_level_info = ["tracing/max_level_info", "log/max_level_info"] max_level_debug = ["tracing/max_level_debug", "log/max_level_debug"] # Testing features that activate extra dependencies proptest-impl = ["proptest", "proptest-derive", "zebra-chain/proptest-impl", "zebra-state/proptest-impl", "zebra-consensus/proptest-impl", "zebra-network/proptest-impl"] # The gRPC tests also need an installed lightwalletd binary lightwalletd-grpc-tests = ["tonic-build"] # TODO: replace with environmental variables that skip the tests when not set (part of #2995) test_sync_to_mandatory_checkpoint_mainnet = [] test_sync_to_mandatory_checkpoint_testnet = [] test_sync_past_mandatory_checkpoint_mainnet = [] test_sync_past_mandatory_checkpoint_testnet = [] [dependencies] zebra-chain = { path = "../zebra-chain" } zebra-consensus = { path = "../zebra-consensus/" } zebra-network = { path = "../zebra-network" } zebra-node-services = { path = "../zebra-node-services" } zebra-rpc = { path = "../zebra-rpc" } zebra-state = { path = "../zebra-state" } abscissa_core = "0.5" gumdrop = "0.7" chrono = "0.4.19" humantime-serde = "1.1.1" indexmap = "1.8.2" lazy_static = "1.4.0" serde = { version = "1.0.137", features = ["serde_derive"] } toml = "0.5.9" hyper = { version = "0.14.19", features = ["full"] } futures = "0.3.21" tokio = { version = "1.19.2", features = ["time", "rt-multi-thread", "macros", "tracing", "signal"] } tower = { version = "0.4.12", features = ["hedge", "limit"] } pin-project = "1.0.10" color-eyre = { version = "0.6.1", default_features = false, features = ["issue-url"] } thiserror = "1.0.31" tracing-flame = "0.2.0" tracing-journald = "0.3.0" tracing-subscriber = { version = "0.3.11", features = ["env-filter"] } tracing-error = "0.2.0" tracing-futures = "0.2.5" tracing = "0.1.31" metrics = "0.18.1" metrics-exporter-prometheus = { version = "0.9.0", default-features = false, features = ["http-listener"] } dirs = "4.0.0" inferno = { version = "0.11.4", default-features = false } atty = "0.2.14" num-integer = "0.1.45" rand = { version = "0.8.5", package = "rand" } # prod feature enable-sentry sentry-tracing = { version = "0.26.0", optional = true } sentry = { version = "0.26.0", default-features = false, features = ["backtrace", "contexts", "reqwest", "rustls"], optional = true } # prod feature release_max_level_info # # zebrad uses tracing for logging, # we only use `log` to set and print the static log levels in transitive dependencies log = "0.4.17" # test feature proptest-impl proptest = { version = "0.10.1", optional = true } proptest-derive = { version = "0.3.0", optional = true } [build-dependencies] vergen = { version = "7.2.0", default-features = false, features = ["cargo", "git"] } # test feature lightwalletd-grpc-tests tonic-build = { version = "0.7.2", optional = true } [dev-dependencies] abscissa_core = { version = "0.5", features = ["testing"] } hex = "0.4.3" once_cell = "1.12.0" regex = "1.5.6" reqwest = "0.11.10" semver = "1.0.10" # zebra-rpc needs the preserve_order feature, it also makes test results more stable serde_json = { version = "1.0.81", features = ["preserve_order"] } tempfile = "3.3.0" tokio = { version = "1.19.2", features = ["full", "test-util"] } tokio-stream = "0.1.8" # test feature lightwalletd-grpc-tests prost = "0.10.4" tonic = "0.7.2" proptest = "0.10.1" proptest-derive = "0.3.0" # enable span traces and track caller in tests color-eyre = { version = "0.6.1", features = ["issue-url"] } zebra-chain = { path = "../zebra-chain", features = ["proptest-impl"] } zebra-consensus = { path = "../zebra-consensus/", features = ["proptest-impl"] } zebra-network = { path = "../zebra-network", features = ["proptest-impl"] } zebra-state = { path = "../zebra-state", features = ["proptest-impl"] } zebra-test = { path = "../zebra-test" }