[workspace]

members  = [ "subprojects/hydra-builder", "subprojects/hydra-queue-runner", "subprojects/crates/*" ]
resolver = "2"

[workspace.package]
rust-version = "1.91.0"
version      = "0.1.0"

[workspace.dependencies]
arc-swap = "1.7"
async-compression = { version = "0.4", default-features = false }
async-stream = "0.3"
atomic_float = "1.1.0"
aws-credential-types = "1"
aws-sigv4 = "1"
aws-smithy-runtime-api = "1"
backon = "1.5.2"
byte-unit = "5.1.6"
bytes = "1"
clap = "4"
color-eyre = "0.6"
configparser = "3.1"
cxx = "1"
cxx-build = "1"
data-encoding = "2"
derive_more = { version = "2", features = [ "display", "from", "into", "deref", "from_str" ] }
digest = "0.10.7"
foldhash = "0.2"
fs-err = "3.0"
futures = "0.3"
futures-util = "0.3"
gethostname = "1"
h2 = "0.4"
harmonia-file-core = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-file-nar = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-protocol = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-aterm = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-content-address = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-derivation = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-nar-info = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-path = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-path-info = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-remote = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-base-encoding = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-hash = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-io = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-signature = { git = "https://github.com/nix-community/harmonia.git" }
hashbrown = "0.16"
http = "1.1"
http-body-util = "0.1"
hyper = { version = "1", features = [ "full" ] }
hyper-util = "0.1.10"
jiff = { version = "0.2", features = [ "serde" ] }
listenfd = "1"
md5 = "0.7"
moka = { version = "0.12", features = [ "future" ] }
nix = { version = "0.31", default-features = false }
num_enum = "0.7"
object_store = "0.13.0"
opentelemetry = "0.32.0"
opentelemetry-http = "0.32.0"
opentelemetry-otlp = "0.32.0"
opentelemetry-semantic-conventions = "0.32.0"
opentelemetry_sdk = "0.32.1"
parking_lot = "0.12.4"
percent-encoding = "2.3.2"
petgraph = { version = "0.8", default-features = false, features = [ "graphmap", "std" ] }
pkg-config = "0.3"
procfs = "0.18"
procfs-core = "0.18"
prometheus = { version = "0.14.0", default-features = false }
prost = "0.14"
quick-xml = { version = "0.39", features = [ "serialize" ] }
regex = "1"
reqwest = { version = "0.12", default-features = false, features = [
    "http2",
    "charset",
    "rustls-tls-webpki-roots",
    "system-proxy",
] }
ring = "0.17"
sd-notify = "0.5.0"
secrecy = "0.10"
serde = "1.0"
serde_json = "1.0"
sha2 = "0.10"
smallvec = "1.15"
sqlx = "0.8"
sysinfo = "0.38.0"
thiserror = "2.0"
tikv-jemallocator = "0.6"
tokio = { version = "1.34", features = [ "full" ] }
tokio-stream = "0.1"
tokio-util = "0.7"
toml = "1.0"
tonic = "0.14"
tonic-health = { version = "0.14", default-features = false }
tonic-prost = "0.14"
tonic-prost-build = "0.14"
tonic-reflection = "0.14"
tower = "0.5"
tower-http = "0.6"
tracing = "0.1"
tracing-error = "0.2"
tracing-log = "0.2.0"
tracing-opentelemetry = "0.33.0"
tracing-subscriber = "0.3.18"
url = "2.5.4"
uuid = "1.16"
zerocopy = { version = "0.8", features = [ "derive" ] }
zstd = "0.13"

# Local workspace crates
binary-cache        = { path = "subprojects/crates/binary-cache" }
daemon-client-utils = { path = "subprojects/crates/daemon-client-utils" }
db                  = { path = "subprojects/crates/db" }
hydra-proto         = { path = "subprojects/crates/proto" }
hydra-tracing       = { path = "subprojects/crates/tracing" }
nix-support         = { path = "subprojects/crates/nix-support" }
store-path-utils    = { path = "subprojects/crates/store-path-utils" }
store-transfer      = { path = "subprojects/crates/store-transfer" }
test-utils          = { path = "subprojects/crates/test-utils" }

[patch.crates-io]
harmonia-file-core             = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-file-nar              = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-aterm           = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-content-address = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-derivation      = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-nar-info        = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-path            = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-store-path-info       = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-base-encoding   = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-hash            = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-io              = { git = "https://github.com/nix-community/harmonia.git" }
harmonia-utils-signature       = { git = "https://github.com/nix-community/harmonia.git" }
