[package] name = "nx9-auth" version = "0.4.0" edition = "2024" authors = ["NX9 Team","Sunil Thakare"] description = "Lightweight self-hosted IAM service for the NX9 ecosystem" license = "MIT OR Apache-2.0" repository = "https://github.com/nx9-iam/nx9-auth" homepage = "https://nx9.dev" documentation = "https://docs.rs/nx9-auth" keywords = ["iam", "authentication", "authorization", "rbac", "security"] categories = ["authentication", "web-programming::http-server"] [[bin]] name = "nx9-auth" path = "src/main.rs" [lib] name = "nx9_auth" path = "src/lib.rs" [dependencies] async-trait = "0.1" # HTTP framework axum = { version = "0.8.9", features = ["macros"] } axum-extra = { version = "0.12", features = ["cookie"] } tower = { version = "0.5", features = ["full"] } tower-http = { version = "0.6.11", features = ["trace", "request-id", "compression-gzip", "cors", "set-header"] } # Async runtime tokio = { version = "1.52.3", features = ["full"] } tokio-util = "0.7" # Database sqlx = { version = "0.9.0", features = ["runtime-tokio", "chrono", "macros"] } # Password hashing argon2 = "0.5.3" # Token/session hashing blake3 = "1.8.5" # CLI clap = { version = "4.6.1", features = ["derive", "color", "env"] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Time chrono = { version = "0.4", features = ["serde"] } uuid = { version = "1.23.3", features = ["v4"] } time = { version = "0.3.47", features = ["macros"] } # Config toml = "0.8" # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "fmt"] } # Random rand = { version = "0.8", features = ["std", "std_rng"] } # Error handling thiserror = "2.0" anyhow = "1.0" # Rate limiter dashmap = "6.0" # Utilities hex = "0.4" url = "2.5" subtle = "2.6" [profile.release] opt-level = 3 lto = true codegen-units = 1 strip = true panic = "abort" [profile.dev] opt-level = 0 debug = true [dev-dependencies] http-body-util = "0.1" [features] default = ["sqlite"] sqlite = ["sqlx/sqlite"] postgres = ["sqlx/postgres"]