[package]
name                   = "hydra-queue-runner"
version.workspace      = true
edition                = "2024"
license                = "GPL-3.0"
rust-version.workspace = true

[dependencies]
sd-notify.workspace = true
tracing.workspace   = true

arc-swap.workspace    = true
hashbrown             = { workspace = true, features = [ "serde" ] }
parking_lot.workspace = true
secrecy               = { workspace = true, features = [ "serde" ] }
serde                 = { workspace = true, features = [ "derive" ] }
serde_json.workspace  = true
smallvec              = { workspace = true, features = [ "serde" ] }
toml.workspace        = true

atomic_float.workspace = true
backon.workspace       = true
clap                   = { workspace = true, features = [ "derive" ] }
color-eyre.workspace   = true
fs-err                 = { workspace = true, features = [ "tokio" ] }
thiserror.workspace    = true
uuid                   = { workspace = true, features = [ "v4", "serde" ] }

byte-unit.workspace    = true
futures.workspace      = true
futures-util.workspace = true
tokio                  = { workspace = true, features = [ "full" ] }
tokio-stream.workspace = true
tokio-util             = { workspace = true, features = [ "io", "io-util" ] }

async-compression          = { workspace = true, features = [ "tokio", "zstd" ] }
h2.workspace               = true
listenfd.workspace         = true
prost.workspace            = true
tonic                      = { workspace = true, features = [ "tls-webpki-roots" ] }
tonic-health.workspace     = true
tonic-prost.workspace      = true
tonic-reflection.workspace = true

bytes.workspace          = true
http-body-util.workspace = true
hyper                    = { workspace = true, features = [ "full" ] }
hyper-util.workspace     = true
jiff.workspace           = true
procfs.workspace         = true
prometheus               = { workspace = true, features = [ "process" ] }
tower                    = { workspace = true, features = [ "util" ] }
tower-http               = { workspace = true, features = [ "trace" ] }

binary-cache.workspace                   = true
daemon-client-utils.workspace            = true
db.workspace                             = true
harmonia-file-core.workspace             = true
harmonia-file-nar.workspace              = true
harmonia-protocol.workspace              = true
harmonia-store-aterm.workspace           = true
harmonia-store-content-address.workspace = true
harmonia-store-derivation.workspace      = true
harmonia-store-nar-info.workspace        = true
harmonia-store-path.workspace            = true
harmonia-store-path-info.workspace       = true
harmonia-store-remote.workspace          = true
harmonia-utils-hash.workspace            = true
hydra-proto                              = { workspace = true, features = [ "db", "server" ] }
hydra-tracing                            = { workspace = true, features = [ "tonic" ] }
nix-support.workspace                    = true
sha2.workspace                           = true
store-path-utils.workspace               = true
store-transfer.workspace                 = true

[dev-dependencies]
harmonia-file-nar = { workspace = true, features = [ "test" ] }
tempfile          = "3.23.0"

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

[features]
otel = [ "hydra-tracing/otel" ]
