content: [package]
  name = "breadth-api"
  version = "0.1.0"
  edition = "2021"
  
  [lib]
  path = "src/lib.rs"
  
  [[bin]]
  name = "breadth-api"
  path = "src/main.rs"
  
  [dependencies]
  dotenvy = "0.15"
  once_cell = "1.20"
  serde = { version = "1", features = ["derive"] }
  serde_with = "3.12"
  thiserror = "2"
  validator = { version = "0.20", features = ["derive"] }
  # ----------------- HTTP -----------------
  http = "1.2.0"
  tower = "0.5"
  tower-http = { version = "0.6", features = ["trace", "cors"] }
  tokio = { version = "1", features = ["full"] }
  hyper = { version = "1.6" }
  futures-util = { version = "0.3" }
  axum = { version = "0.8", features = ["macros"] }
  # ----------------- Log & Metrics -----------------
  tracing = "0.1"
  tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
  prometheus = { version = "0.13" }
  # ----------------- OpenTelemetry -----------------
  # tracing-opentelemetry = "0.29"
  # opentelemetry = { version = "0.28", features = ["trace"] }
  # opentelemetry_sdk = { version = "0.28", features = ["rt-tokio"] }
  # opentelemetry-otlp = { version = "0.28", features = ["trace", "grpc-tonic"] }
  # ----------------- Database -----------------
  sqlx = { version = "0.8", features = ["mysql", "runtime-tokio-native-tls", "macros", "chrono"] }
  chrono = { version = "0.4", features = ["serde"] }
  sea-orm = { version = "1.1", features = ["sqlx-mysql", "chrono", "runtime-async-std-native-tls"] }
  # ----------------- Auth -----------------
  jsonwebtoken = "9"
  # ----------------- Cache -----------------
  cached = { version = "0.54", features = ["async"] }
  
  [dev-dependencies]
  anyhow = { version = "1" }
  testcontainers = { version = "0.23" }
  testcontainers-modules = { version = "0.11", features = ["mysql"] }
  axum-test = { version = "17.2" }
  sea-orm-migration = { version = "1.1", features = ["sqlx-mysql", "with-chrono"] }
  reqwest = { version = "0.12", features = ["json"] }
  