content: [package]
  name = "lms-backend"
  version = "0.1.0"
  edition = "2024"
  authors = ["Maksim Nikitin <cfrt.dev@gmail.com>", "Mikhail Reznichenko <me@justmarfix.ru>"]
  license = "MIT"
  repository = "https://github.com/mscw-infosec/lms"
  rust-version = "1.88"
  publish = false
  
  [features]
  default = []
  swagger = ["dep:utoipa-swagger-ui"]
  gen-openapi = ["dep:utoipa-swagger-ui"]
  
  [dependencies]
  anyhow = "1.0.98"
  async-trait = "0.1.88"
  axum = { version = "0.8.4", features = ["multipart"] }
  axum-macros = "0.5.0"
  base64 = "0.22.1"
  chrono = { version = "0.4.41", features = ["serde"] }
  impl_unimplemented = "0.1.0"
  dotenvy = "0.15.7"
  futures = "0.3.31"
  jsonwebtoken = "9.3.1"
  prost = "0.11"
  prost-types = "0.11"
  rand = "0.9.1"
  redis = { version = "0.32.4", features = ["r2d2", "tokio-rustls-comp", "ahash", "json"] }
  redis-macros = "0.5.5"
  reqwest = { version = "0.12.15", features = ["json"] }
  rust-argon2 = "3.0.0"
  rust-s3 = { version = "0.36.0-beta.2", features = ["tokio-rustls-tls", "with-tokio"] }
  serde = { version = "1.0.219", features = ["derive"] }
  serde_json = "1.0.140"
  sha2 = "0.10.9"
  sqlx = { version = "0.8.5", features = ["postgres", "uuid", "runtime-tokio", "chrono"] }
  thiserror = "2.0.12"
  tokio = { version = "1.44.2", features = ["full"] }
  tokio-util = "0.7.15"
  tonic = "0.13.1"
  tower-cookies = "0.11.0"
  tower-http = { version = "0.6.2", features = ["compression-full", "cors", "request-id", "trace"] }
  tracing = "0.1.41"
  tracing-subscriber = { version = "0.3.19", features = ["json", "env-filter", "fmt"] }
  url = "2.5.4"
  utoipa = { version = "5.3.1", features = ["axum_extras", "chrono", "macros", "non_strict_integers", "uuid"] }
  utoipa-axum = "0.2.0"
  utoipa-swagger-ui = { version = "9.0.1", features = ["axum"], optional = true }
  uuid = { version = "1.16.0", features = ["serde", "v4"] }
  validator = { version = "0.20.0", features = ["derive"] }
  yandex-cloud = "2025.4.14"
  
  [profile.release]
  lto = "fat"
  codegen-units = 1
  strip = true
  