[package]
name = "solana-poh"
description = "Solana PoH"
documentation = "https://docs.rs/solana-poh"
version = { workspace = true }
authors = { workspace = true }
repository = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
edition = { workspace = true }

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[lib]
crate-type = ["lib"]
name = "solana_poh"

[features]
agave-unstable-api = []
dev-context-only-utils = []
shuttle-test = ["dep:shuttle"]

[dependencies]
arc-swap = { workspace = true }
core_affinity = { workspace = true }
crossbeam-channel = { workspace = true }
log = { workspace = true }
qualifier_attr = { workspace = true }
shuttle = { workspace = true, optional = true }
solana-clock = { workspace = true }
solana-entry = { workspace = true }
solana-hash = { workspace = true }
solana-ledger = { workspace = true }
solana-measure = { workspace = true }
solana-metrics = { workspace = true }
solana-poh-config = { workspace = true }
solana-pubkey = { workspace = true }
solana-runtime = { workspace = true }
solana-time-utils = { workspace = true }
solana-transaction = { workspace = true }
thiserror = { workspace = true }

[dev-dependencies]
agave-logger = { workspace = true }
assert_matches = { workspace = true }
bincode = { workspace = true }
criterion = { workspace = true }
rand = { workspace = true }
solana-entry = { workspace = true, features = ["dev-context-only-utils"] }
solana-keypair = { workspace = true }
solana-perf = { workspace = true, features = ["dev-context-only-utils"] }
solana-poh = { path = ".", features = ["agave-unstable-api", "dev-context-only-utils"] }
solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
solana-sha256-hasher = { workspace = true }
solana-signer = { workspace = true }
solana-system-transaction = { workspace = true }

[target.'cfg(not(any(target_env = "msvc", target_os = "freebsd")))'.dev-dependencies]
jemallocator = { workspace = true }

[[bench]]
name = "poh"

[[bench]]
name = "transaction_recorder"
harness = false
