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

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

[dependencies]
aide = { version = "0.9", features = ["axum"] }
api.workspace = true
arrow-flight.workspace = true
async-trait = "0.1"
auth.workspace = true
axum = { version = "0.6", features = ["headers"] }
axum-macros = "0.3.8"
base64.workspace = true
bytes = "1.2"
catalog.workspace = true
chrono.workspace = true
common-base.workspace = true
common-catalog.workspace = true
common-error.workspace = true
common-grpc-expr.workspace = true
common-grpc.workspace = true
common-macro.workspace = true
common-mem-prof = { workspace = true, optional = true }
common-meta.workspace = true
common-query.workspace = true
common-recordbatch.workspace = true
common-runtime.workspace = true
common-telemetry.workspace = true
common-time.workspace = true
datafusion-common.workspace = true
datafusion-expr.workspace = true
datafusion.workspace = true
datatypes.workspace = true
derive_builder.workspace = true
digest = "0.10"
futures = "0.3"
headers = "0.3"
hex = { version = "0.4" }
hostname = "0.3.1"
http-body = "0.4"
humantime-serde.workspace = true
hyper = { version = "0.14", features = ["full"] }
influxdb_line_protocol = { git = "https://github.com/evenyag/influxdb_iox", branch = "feat/line-protocol" }
itertools.workspace = true
lazy_static.workspace = true
mime_guess = "2.0"
once_cell.workspace = true
openmetrics-parser = "0.4"
opensrv-mysql = "0.5"
opentelemetry-proto.workspace = true
parking_lot = "0.12"
pgwire = "0.16"
pin-project = "1.0"
postgres-types = { version = "0.2", features = ["with-chrono-0_4"] }
pprof = { version = "0.13", features = [
    "flamegraph",
    "prost-codec",
    "protobuf",
], optional = true }
prometheus.workspace = true
promql-parser = "0.1.1"
prost.workspace = true
query.workspace = true
rand.workspace = true
regex.workspace = true
rust-embed = { version = "6.6", features = ["debug-embed"] }
rustls = "0.21"
rustls-pemfile = "1.0"
schemars = "0.8"
secrecy = { version = "0.8", features = ["serde", "alloc"] }
serde.workspace = true
serde_json = "1.0"
session.workspace = true
sha1 = "0.10"
snafu.workspace = true
snap = "1"
sql.workspace = true
strum.workspace = true
table.workspace = true
tokio-rustls = "0.24"
tokio-stream = { version = "0.1", features = ["net"] }
tokio.workspace = true
tonic-reflection = "0.10"
tonic.workspace = true
tower = { version = "0.4", features = ["full"] }
tower-http = { version = "0.3", features = ["full"] }
urlencoding = "2.1"

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

[dev-dependencies]
auth = { workspace = true, features = ["testing"] }
axum-test-helper = { git = "https://github.com/sunng87/axum-test-helper.git", branch = "patch-1" }
catalog = { workspace = true, features = ["testing"] }
client.workspace = true
common-base.workspace = true
common-test-util.workspace = true
mysql_async = { version = "0.33", default-features = false, features = [
    "default-rustls",
] }
rand.workspace = true
rustls = { version = "0.21", features = ["dangerous_configuration"] }
script = { workspace = true, features = ["python"] }
serde_json = "1.0"
session = { workspace = true, features = ["testing"] }
table.workspace = true
tokio-postgres = "0.7"
tokio-postgres-rustls = "0.10"
tokio-test = "0.4"

[build-dependencies]
build-data = "0.1.4"
