[package]
name = "efdn-gateway"
version.workspace = true
edition.workspace = true
authors.workspace = true
description.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = []
config = [
    "dep:efdn-config",
    "dep:efdn-macros",
    "efdn-telem/config",
    "dep:humantime",
]
errors = [
    "dep:miette",
    "efdn-telem/errors",
]
alloc-metrics = [
    "dep:efdn-alloc",
    "efdn-alloc/metrics",
    "efdn-telem/alloc-metrics",
]

[dependencies]
bytes.workspace = true
efdn-alloc = { path = "../alloc", version = "0.3.0", optional = true }
efdn-config = { path = "../config", version = "0.3.0", optional = true }
efdn-macros = { path = "../macros", version = "0.3.0", optional = true, features = ["config"] }
efdn-telem = { path = "../telem", version = "0.3.0", features = ["metrics"] }
http.workspace = true
http-body-util.workspace = true
humantime = { workspace = true, optional = true }
hyper = { workspace = true, features = ["http1", "server"] }
hyper-util = { workspace = true, features = ["tokio"] }
metrics.workspace = true
miette = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = ["macros", "net", "rt", "sync", "time"] }
tokio-util = { workspace = true, features = ["rt"] }
tracing.workspace = true

[lints]
workspace = true
