[package]
name = "agntcy-slim-controller"
version = "0.7.0"
edition = { workspace = true }
license = { workspace = true }
description = "Controller service and control API to configure the SLIM data plane through the control plane."
# proto/ holds the canonical controller.proto; src/api/gen/ holds pre-generated code for published packages
include = ["src/**", "build.rs", "proto/**"]

[lib]
name = "slim_controller"

[dependencies]
agntcy-slim-config = { workspace = true }
agntcy-slim-datapath = { workspace = true }
agntcy-slim-session = { workspace = true }
agntcy-slim-signal = { workspace = true }
agntcy-slim-tracing = { workspace = true }
agntcy-slim-version = { workspace = true }
display-error-chain = { workspace = true }
drain = { workspace = true }
duration-string = { workspace = true }
futures = { workspace = true }
h2 = { workspace = true }
parking_lot = { workspace = true }
prost = { workspace = true }
prost-types = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
tokio-stream = { workspace = true }
tokio-util = { workspace = true }
tonic = { workspace = true }
tonic-prost = { workspace = true }
tracing = { workspace = true }
uuid = { workspace = true, features = ["v4"] }

[build-dependencies]
protoc-bin-vendored = { workspace = true }
tonic-prost-build = { workspace = true }

[dev-dependencies]
tracing-test = { workspace = true }
