[package]
name = "dragonfly-client"
description = "Dragonfly client written in Rust"
version.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
keywords.workspace = true
license.workspace = true
readme.workspace = true
edition.workspace = true
build = "build.rs"

[[bin]]
name = "dfdaemon"
path = "src/bin/dfdaemon/main.rs"

[[bin]]
name = "dfget"
path = "src/bin/dfget/main.rs"

[[bin]]
name = "dfstore"
path = "src/bin/dfstore/main.rs"

[dependencies]
dragonfly-client-core.workspace = true
dragonfly-client-config.workspace = true
dragonfly-client-storage.workspace = true
dragonfly-client-backend.workspace = true
dragonfly-client-util.workspace = true
dragonfly-api.workspace = true
rcgen.workspace = true
hyper.workspace = true
hyper-util.workspace = true
hyper-rustls.workspace = true
tracing.workspace = true
validator.workspace = true
humantime.workspace = true
serde.workspace = true
serde_json.workspace = true
chrono.workspace = true
prost-wkt-types.workspace = true
tokio.workspace = true
tokio-util.workspace = true
rustls.workspace = true
rustls-pki-types.workspace = true
warp.workspace = true
tonic.workspace = true
tokio-stream.workspace = true
reqwest.workspace = true
url.workspace = true
http.workspace = true
openssl.workspace = true
clap.workspace = true
anyhow.workspace = true
tracing-log = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-appender = "0.2.3"
rolling-file = "0.2.0"
tracing-opentelemetry = "0.18.0"
opentelemetry = { version = "0.18.0", default-features = false, features = ["trace", "rt-tokio"] }
opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio"] }
pprof = { version = "0.13", features = ["flamegraph", "protobuf-codec"] }
lazy_static = "1.4"
prometheus = { version = "0.13", features = ["process"] }
tonic-health = "0.9.2"
tonic-reflection = "0.9.2"
bytes = "1.4"
sysinfo = "0.29.6"
tower = "0.4.13"
indicatif = "0.17.8"
dashmap = "5.5.3"
fs2 = "0.4.3"
hashring = "0.3.5"
libc = "0.2"
fslock = "0.2.1"
leaky-bucket = "1.0.1"
tokio-rustls = "0.25.0-alpha.4"
http-body-util = "0.1.0"
futures-util = "0.3.30"
termion = "4.0.0"

[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = { version = "0.5.4", features = ["profiling", "stats", "unprefixed_malloc_on_supported_platforms", "background_threads"] }

[target.'cfg(target_os = "linux")'.dependencies]
jemalloc_pprof = "0.1.0"
