[package]
name = "servers"
version.workspace = true
edition.workspace = true
license.workspace = true

[features]
default = []
dashboard = ["dep:rust-embed"]
mem-prof = ["dep:common-mem-prof"]
pprof = ["dep:common-pprof"]
testing = []

[lints]
workspace = true

[target.'cfg(not(target_os = "android"))'.dependencies]
local-ip-address.workspace = true

[dependencies]
ahash.workspace = true
api.workspace = true
arrow.workspace = true
arrow-flight.workspace = true
arrow-ipc.workspace = true
arrow-schema.workspace = true
async-trait.workspace = true
auth.workspace = true
axum = { workspace = true, features = ["multipart"] }
axum-extra = { workspace = true, features = ["typed-header"] }
axum-macros.workspace = true
base64.workspace = true
bytes.workspace = true
catalog.workspace = true
chrono.workspace = true
common-base.workspace = true
common-catalog.workspace = true
common-decimal.workspace = true
common-error.workspace = true
common-frontend.workspace = true
common-grpc.workspace = true
common-macro.workspace = true
common-mem-prof = { workspace = true, optional = true }
common-meta.workspace = true
common-plugins.workspace = true
common-pprof = { workspace = true, optional = true }
common-query.workspace = true
common-recordbatch.workspace = true
common-runtime.workspace = true
common-session.workspace = true
common-sql.workspace = true
common-stat.workspace = true
common-telemetry.workspace = true
common-time.workspace = true
common-version = { workspace = true, features = ["codec"] }
csv = "1.3"
dashmap.workspace = true
datafusion.workspace = true
datafusion-common.workspace = true
datafusion-expr.workspace = true
datafusion-pg-catalog.workspace = true
datatypes.workspace = true
derive_builder.workspace = true
futures.workspace = true
futures-util.workspace = true
headers = "0.4"
hostname = "0.3"
http.workspace = true
humantime.workspace = true
humantime-serde.workspace = true
hyper = { workspace = true, features = ["full"] }
indexmap = "2.8"
influxdb_line_protocol = { git = "https://github.com/evenyag/influxdb_iox", branch = "feat/line-protocol" }
itertools.workspace = true
jsonb.workspace = true
lazy_static.workspace = true
log-query.workspace = true
loki-proto.workspace = true
mime_guess = "2.0"
notify.workspace = true
object-pool = "0.5"
once_cell.workspace = true
openmetrics-parser = "0.4"
opensrv-mysql = { git = "https://github.com/datafuselabs/opensrv", tag = "v0.10.0" }
opentelemetry-proto.workspace = true
operator.workspace = true
otel-arrow-rust.workspace = true
parking_lot.workspace = true
pg_interval = "0.4"
pgwire = { version = "0.36.3", default-features = false, features = [
    "server-api-ring",
    "pg-ext-types",
] }
pin-project = "1.0"
pipeline.workspace = true
postgres-types = { version = "0.2", features = ["with-chrono-0_4", "with-serde_json-1"] }
prometheus.workspace = true
promql-parser.workspace = true
prost.workspace = true
query.workspace = true
quoted-string = "0.6"
rand.workspace = true
regex.workspace = true
reqwest.workspace = true
rust-embed = { version = "6.6", optional = true, features = ["debug-embed"] }
rustls = { workspace = true, default-features = false, features = ["ring", "logging", "std", "tls12"] }
rustls-pemfile = "2.0"
rustls-pki-types = "1.0"
serde.workspace = true
serde_json.workspace = true
session.workspace = true
simd-json.workspace = true
snafu.workspace = true
snap = "1"
socket2 = "0.5"
sql.workspace = true
store-api.workspace = true
strum.workspace = true
table.workspace = true
tokio.workspace = true
tokio-rustls.workspace = true
tokio-stream = { workspace = true, features = ["net"] }
tokio-util.workspace = true
tonic.workspace = true
tonic-reflection = "0.13"
tower = { workspace = true, features = ["full"] }
tower-http = { version = "0.6", features = ["full"] }
tracing.workspace = true
tracing-opentelemetry.workspace = true
urlencoding = "2.1"
uuid.workspace = true
vrl.workspace = true
zstd.workspace = true

[target.'cfg(not(windows))'.dependencies]
tikv-jemalloc-ctl = { version = "0.6", features = ["use_std", "stats"] }

[dev-dependencies]
auth = { workspace = true, features = ["testing"] }
catalog = { workspace = true, features = ["testing"] }
client = { workspace = true, features = ["testing"] }
common-base.workspace = true
common-test-util.workspace = true
criterion = "0.5"
json5 = "0.4"
mysql_async = { version = "0.35", default-features = false, features = [
    "default-rustls-ring",
] }
permutation = "0.4"
rand.workspace = true
serde_json.workspace = true
session = { workspace = true, features = ["testing"] }
table.workspace = true
tempfile = "3.0.0"
tokio-postgres = "0.7"
tokio-postgres-rustls = "0.12"

[target.'cfg(unix)'.dev-dependencies]
pprof = { version = "0.14", features = ["criterion", "flamegraph"] }

[build-dependencies]
common-version.workspace = true

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

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

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