[package]
edition = "2021"
rust-version = "1.89"
name = "zebrad"
version = "4.3.0"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "zebrad"
description = "The Zcash Foundation's independent, consensus-compatible implementation of a Zcash node"
homepage = "https://zfnd.org/zebra/"
readme = "README.md"
keywords = [
"zebra",
"zcash",
]
categories = [
"command-line-utilities",
"cryptography::cryptocurrencies",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ZcashFoundation/zebra"
[[package.metadata.release.pre-release-replacements]]
file = "../book/src/user/install.md"
search = 'git checkout [a-z0-9\.-]+'
replace = "git checkout v{{version}}"
[[package.metadata.release.pre-release-replacements]]
file = "../book/src/user/install.md"
search = '--tag [a-z0-9\.-]+'
replace = "--tag v{{version}}"
[[package.metadata.release.pre-release-replacements]]
file = "../book/src/user/docker.md"
search = '--branch [a-z0-9\.-]+'
replace = "--branch v{{version}}"
[package.metadata.docs.rs]
features = [
"default-release-binaries",
"filter-reload",
"flamegraph",
"journald",
"opentelemetry",
"prometheus",
"sentry",
"indexer",
]
[package.metadata.cargo-udeps.ignore]
normal = [
"console-subscriber",
"zebra-utils",
]
development = ["zebra-utils"]
[features]
comparison-interpreter = ["zebra-script/comparison-interpreter"]
default = ["default-release-binaries"]
default-release-binaries = [
"release_max_level_info",
"progress-bar",
"prometheus",
"sentry",
]
elasticsearch = ["zebra-state/elasticsearch"]
error-debug = [
"color-eyre/track-caller",
"color-eyre/capture-spantrace",
]
filter-reload = []
flamegraph = [
"tracing-flame",
"inferno",
]
indexer = ["zebra-state/indexer"]
internal-miner = [
"thread-priority",
"zebra-chain/internal-miner",
"zebra-rpc/internal-miner",
]
journald = ["tracing-journald"]
lightwalletd-grpc-tests = ["tonic-prost-build"]
max_level_debug = [
"tracing/max_level_debug",
"log/max_level_debug",
]
max_level_info = ["tracing/max_level_info"]
max_level_warn = ["tracing/max_level_warn"]
opentelemetry = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:tracing-opentelemetry",
]
progress-bar = [
"howudoin",
"indicatif",
"zebra-consensus/progress-bar",
"zebra-state/progress-bar",
"zebra-network/progress-bar",
]
prometheus = ["metrics-exporter-prometheus"]
proptest-impl = [
"proptest",
"proptest-derive",
"zebra-consensus/proptest-impl",
"zebra-state/proptest-impl",
"zebra-network/proptest-impl",
"zebra-chain/proptest-impl",
]
release_max_level_debug = ["tracing/release_max_level_debug"]
release_max_level_info = [
"tracing/release_max_level_info",
"log/release_max_level_info",
]
release_max_level_warn = ["tracing/release_max_level_warn"]
sentry = ["dep:sentry"]
tokio-console = ["console-subscriber"]
tx_v6 = [
"zebra-chain/tx_v6",
"zebra-state/tx_v6",
"zebra-consensus/tx_v6",
"zebra-rpc/tx_v6",
]
zebra-checkpoints = ["zebra-utils/zebra-checkpoints"]
[lib]
name = "zebrad"
path = "src/lib.rs"
[[bin]]
name = "zebrad"
path = "src/bin/zebrad/main.rs"
[[test]]
name = "acceptance"
path = "tests/acceptance.rs"
[[test]]
name = "config"
path = "tests/config.rs"
[[test]]
name = "end_of_support"
path = "tests/end_of_support.rs"
[dependencies.abscissa_core]
version = "0.7"
[dependencies.atty]
version = "0.2.14"
[dependencies.bytes]
version = "1.10"
[dependencies.chrono]
version = "0.4.40"
features = [
"clock",
"std",
]
default-features = false
[dependencies.clap]
version = "4.5"
features = ["cargo"]
[dependencies.color-eyre]
version = "0.6.3"
features = ["issue-url"]
default-features = false
[dependencies.config]
version = "0.15.14"
features = ["toml"]
[dependencies.console-subscriber]
version = "0.4"
optional = true
[dependencies.derive-new]
version = "0.5"
[dependencies.dirs]
version = "6.0"
[dependencies.futures]
version = "0.3.31"
[dependencies.howudoin]
version = "0.1"
features = ["term-line"]
optional = true
[dependencies.http-body-util]
version = "0.1.3"
[dependencies.humantime-serde]
version = "1.1"
[dependencies.hyper]
version = "1.6"
features = [
"server",
"http1",
]
[dependencies.hyper-util]
version = "0.1.11"
features = [
"service",
"server",
"tokio",
]
[dependencies.indexmap]
version = "2.8"
[dependencies.indicatif]
version = "0.17"
optional = true
[dependencies.inferno]
version = "0.12"
optional = true
default-features = false
[dependencies.lazy_static]
version = "1.4"
[dependencies.log]
version = "0.4.27"
[dependencies.metrics]
version = "0.24"
[dependencies.metrics-exporter-prometheus]
version = "0.16"
features = ["http-listener"]
optional = true
default-features = false
[dependencies.num-integer]
version = "0.1.46"
[dependencies.opentelemetry]
version = "0.28"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.28"
features = [
"http-proto",
"reqwest-blocking-client",
]
optional = true
[dependencies.opentelemetry_sdk]
version = "0.28"
features = ["rt-tokio"]
optional = true
[dependencies.pin-project]
version = "1.1.10"
[dependencies.proptest]
version = "1.6"
optional = true
[dependencies.proptest-derive]
version = "0.5"
optional = true
[dependencies.rand]
version = "0.8.5"
[dependencies.rayon]
version = "1.10"
[dependencies.semver]
version = "1.0.26"
[dependencies.sentry]
version = "0.40"
features = [
"backtrace",
"contexts",
"reqwest",
"rustls",
"tracing",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.219"
features = ["serde_derive"]
[dependencies.thiserror]
version = "2.0"
[dependencies.thread-priority]
version = "1.2"
optional = true
[dependencies.tokio]
version = "1.44"
features = [
"time",
"rt-multi-thread",
"macros",
"tracing",
"signal",
]
[dependencies.tokio-stream]
version = "0.1.17"
features = ["time"]
[dependencies.toml]
version = "0.9.5"
[dependencies.tower]
version = "0.4.13"
features = [
"hedge",
"limit",
]
[dependencies.tracing]
version = "0.1.41"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-error]
version = "0.2"
[dependencies.tracing-flame]
version = "0.2"
optional = true
[dependencies.tracing-futures]
version = "0.2.5"
[dependencies.tracing-journald]
version = "0.3"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.29"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.19"
features = ["env-filter"]
[dependencies.zcash_script]
version = "0.4.3"
[dependencies.zebra-chain]
version = "6.0.1"
[dependencies.zebra-consensus]
version = "5.0.1"
[dependencies.zebra-network]
version = "5.0.0"
[dependencies.zebra-node-services]
version = "4.0.0"
features = ["rpc-client"]
[dependencies.zebra-rpc]
version = "6.0.1"
[dependencies.zebra-script]
version = "5.0.0"
[dependencies.zebra-state]
version = "5.0.0"
[dependencies.zebra-utils]
version = "5.0.0"
optional = true
[dev-dependencies.abscissa_core]
version = "0.7"
features = ["testing"]
[dev-dependencies.bytes]
version = "1.10"
[dev-dependencies.color-eyre]
version = "0.6.3"
default-features = false
[dev-dependencies.hex]
version = "0.4.3"
[dev-dependencies.hex-literal]
version = "0.4"
[dev-dependencies.http-body-util]
version = "0.1.3"
[dev-dependencies.hyper]
version = "1.6"
features = [
"http1",
"http2",
"server",
]
[dev-dependencies.hyper-util]
version = "0.1.11"
[dev-dependencies.insta]
version = "1.42"
features = ["json"]
[dev-dependencies.jsonrpsee-types]
version = "0.24.9"
[dev-dependencies.once_cell]
version = "1.21"
[dev-dependencies.proptest]
version = "1.6"
[dev-dependencies.proptest-derive]
version = "0.5"
[dev-dependencies.prost]
version = "0.14"
[dev-dependencies.regex]
version = "1.11"
[dev-dependencies.serde_json]
version = "1.0.140"
features = ["preserve_order"]
[dev-dependencies.tempfile]
version = "3.20"
[dev-dependencies.tokio]
version = "1.44"
features = [
"full",
"tracing",
"test-util",
]
[dev-dependencies.tokio-stream]
version = "0.1.17"
[dev-dependencies.tonic]
version = "0.14"
[dev-dependencies.tonic-prost]
version = "0.14"
[dev-dependencies.tracing-test]
version = "0.2.4"
features = ["no-env-filter"]
[dev-dependencies.zcash_keys]
version = "0.12"
[dev-dependencies.zebra-chain]
version = "6.0.1"
features = ["proptest-impl"]
[dev-dependencies.zebra-consensus]
version = "5.0.1"
features = ["proptest-impl"]
[dev-dependencies.zebra-network]
version = "5.0.0"
features = ["proptest-impl"]
[dev-dependencies.zebra-state]
version = "5.0.0"
features = ["proptest-impl"]
[dev-dependencies.zebra-test]
version = "3.0.0"
[dev-dependencies.zebra-utils]
version = "5.0.0"
[build-dependencies.tonic-prost-build]
version = "0.14"
optional = true
[build-dependencies.vergen-git2]
version = "9"
features = [
"cargo",
"rustc",
]
default-features = false
[lints.clippy]
await_holding_lock = "warn"
await_holding_refcell_ref = "warn"
cast_ptr_alignment = "warn"
checked_conversions = "warn"
dbg_macro = "warn"
fallible_impl_from = "warn"
fn_to_numeric_cast_any = "warn"
implicit_saturating_sub = "warn"
invalid_upcast_comparisons = "warn"
print_stderr = "warn"
print_stdout = "warn"
range_minus_one = "warn"
range_plus_one = "warn"
result_large_err = "allow"
todo = "warn"
try_err = "allow"
unnecessary_cast = "warn"
unwrap_in_result = "warn"
[lints.rust]
missing_docs = "warn"
non_ascii_idents = "deny"
unsafe_code = "deny"
[lints.rust.future_incompatible]
level = "warn"
priority = -1
[lints.rust.nonstandard_style]
level = "warn"
priority = -1
[lints.rust.rust_2021_compatibility]
level = "warn"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(tokio_unstable)",
'cfg(zcash_unstable, values("zfuture", "nu6.1", "nu7", "zip235"))',
]