[package]
authors.workspace      = true
description            = "Miden node's shared utilities"
edition.workspace      = true
homepage.workspace     = true
keywords               = ["miden", "node", "utils"]
license.workspace      = true
name                   = "miden-node-utils"
readme                 = "README.md"
repository.workspace   = true
rust-version.workspace = true
version.workspace      = true

[lints]
workspace = true

[features]
# Enables utility functions for testing traces created by some other crate's stack.
rocksdb = ["dep:miden-large-smt-backend-rocksdb"]
testing = ["miden-protocol/testing"]

[dependencies]
anyhow                = { workspace = true }
bytes                 = { version = "1.10" }
clap                  = { workspace = true }
fs-err                = { workspace = true }
governor              = { version = "0.10" }
http                  = { workspace = true }
http-body-util        = { version = "0.1" }
humantime             = { workspace = true }
itertools             = { workspace = true }
lru                   = { workspace = true }
miden-protocol        = { workspace = true }
opentelemetry         = { version = "0.31" }
opentelemetry-otlp    = { default-features = false, features = ["grpc-tonic", "tls-roots", "trace"], version = "0.31" }
opentelemetry_sdk     = { features = ["rt-tokio", "testing"], version = "0.31" }
rand                  = { workspace = true }
thiserror             = { workspace = true }
tokio                 = { workspace = true }
tonic                 = { default-features = true, workspace = true }
tower                 = { features = ["limit"], workspace = true }
tower-http            = { features = ["catch-panic"], workspace = true }
tower_governor        = { version = "0.8" }
tracing               = { workspace = true }
tracing-forest        = { features = ["chrono"], optional = true, version = "0.3" }
tracing-opentelemetry = { version = "0.32" }
tracing-subscriber    = { workspace = true }
url                   = { workspace = true }

# RocksDbConfig is needed due to orphan rules
miden-large-smt-backend-rocksdb = { optional = true, workspace = true }

[dev-dependencies]
thiserror = { workspace = true }
