[package]
name = "foyer-bench"
description = "bench tool for foyer - Hybrid cache for Rust"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
authors.workspace = true
license.workspace = true
readme.workspace = true
exclude.workspace = true

[features]
default = ["jemalloc"]
deadlock = ["parking_lot/deadlock_detection", "foyer/deadlock"]
tokio-console = ["dep:console-subscriber"]
strict_assertions = ["foyer/strict_assertions"]
jemalloc = ["dep:tikv-jemallocator"]
jeprof = ["jemalloc", "tikv-jemallocator?/profiling"]
tracing = ["fastrace/enable", "foyer/tracing", "dep:fastrace-jaeger"]

[dependencies]
anyhow = { workspace = true }
bytesize = { workspace = true }
clap = { workspace = true }
console-subscriber = { workspace = true, optional = true }
fastrace = { workspace = true, optional = true }
fastrace-jaeger = { workspace = true, optional = true }
foyer = { workspace = true, features = [
  "runtime-tokio",
  "tracing",
  "clap",
  "test_utils",
] }
futures-util = { workspace = true }
hdrhistogram = { workspace = true }
http-body-util = { workspace = true }
humantime = { workspace = true }
hyper = { workspace = true, features = ["server", "http1"] }
hyper-util = { workspace = true, features = ["tokio"] }
itertools = { workspace = true }
mea = { workspace = true }
mixtrics = { workspace = true, features = ["prometheus"] }
parking_lot = { workspace = true }
prometheus = { workspace = true }
rand = { workspace = true }
rand_distr = { workspace = true }
tokio = { workspace = true, features = ["full"] }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }

[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = { workspace = true, optional = true }

[lints]
workspace = true
