[package]
name = "reth-trie-db"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Database integration with merkle trie implementation"

[lints]
workspace = true

[dependencies]
# reth
reth-primitives.workspace = true
reth-execution-errors.workspace = true
reth-db.workspace = true
reth-db-api.workspace = true
reth-stages-types.workspace = true
reth-storage-errors.workspace = true
reth-trie-common.workspace = true
reth-trie.workspace = true

revm.workspace = true

# alloy
alloy-rlp.workspace = true

# tracing
tracing.workspace = true

# misc
rayon.workspace = true
derive_more.workspace = true
auto_impl.workspace = true
itertools.workspace = true

# `metrics` feature
reth-metrics = { workspace = true, optional = true }
metrics = { workspace = true, optional = true }

# `test-utils` feature
triehash = { version = "0.8", optional = true }

# `serde` feature
serde = { workspace = true, optional = true }

[dev-dependencies]
# reth
reth-chainspec.workspace = true
reth-primitives = { workspace = true, features = ["test-utils", "arbitrary"] }
reth-db = { workspace = true, features = ["test-utils"] }
reth-provider = { workspace = true, features = ["test-utils"] }
reth-storage-errors.workspace = true
reth-trie-common = { workspace = true, features = ["test-utils", "arbitrary"] }
reth-trie = { workspace = true, features = ["test-utils"] }

# trie
triehash = "0.8"

# misc
proptest.workspace = true
proptest-arbitrary-interop.workspace = true
tokio = { workspace = true, default-features = false, features = [
    "sync",
    "rt",
    "macros",
] }
tokio-stream.workspace = true
once_cell.workspace = true
serde_json.workspace = true
similar-asserts.workspace = true
criterion.workspace = true

[features]
metrics = ["reth-metrics", "reth-trie/metrics", "dep:metrics"]
serde = ["dep:serde"]
test-utils = ["triehash", "reth-trie-common/test-utils"]
