[package]
name = "lldap"
version = "0.6.2"
description = "Super-simple and lightweight LDAP server"
categories = ["authentication", "command-line-utilities"]
edition.workspace = true
keywords = ["cli", "ldap", "graphql", "server", "authentication"]
authors.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

[dependencies]
actix = "0.13"
actix-files = "0.6"
actix-http = "3"
actix-rt = "2"
actix-server = "2"
actix-service = "2"
actix-web-httpauth = "0.8"
anyhow = { workspace = true }
async-trait = { workspace = true }
bincode = { workspace = true }
chrono = { workspace = true }
clap = { workspace = true }
cron = "0"
derive_more = { workspace = true }
derive_builder = "0.20"
figment_file_provider_adapter = "0.1"
futures = "0"
futures-util = "0"
hmac = "0.12"
juniper = { workspace = true }
jwt = { workspace = true }
ldap3_proto = { workspace = true }
log = { workspace = true }
opaque-ke = { workspace = true }
rand = { workspace = true }
rand_chacha = "0.3"
rustls-pemfile = "2"
sea-orm = { workspace = true }
secstr = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = "0.10"
strum = { workspace = true }
thiserror = { workspace = true }
time = "0.3"
tokio = { workspace = true }
tokio-rustls = "0.26"
tokio-stream = "0"
tokio-util = "0.7"
tracing = { workspace = true }
tracing-actix-web = "0.7"
tracing-attributes = "^0.1.21"
tracing-log = "0"
tracing-subscriber = { workspace = true }
urlencoding = { workspace = true }
uuid = { workspace = true }
webpki-roots = "1"

[dependencies.actix-web]
features = ["rustls-0_23"]
version = "4.12.1"

[dependencies.rustls]
default-features = false
features = ["ring", "logging", "std", "tls12"]
version = "0.23"

[dependencies.rustls-pki-types]
features = ["std"]
version = "1"

[dependencies.figment]
features = ["env", "toml"]
version = "0"

[dependencies.lettre]
features = ["builder", "serde", "smtp-transport", "tokio1-rustls-tls"]
default-features = false
version = "0.11.19"

[dependencies.lldap_access_control]
path = "../crates/access-control"

[dependencies.lldap_auth]
path = "../crates/auth"
features = ["opaque_server", "opaque_client", "sea_orm"]

[dependencies.lldap_domain]
path = "../crates/domain"

[dev-dependencies.lldap_domain]
path = "../crates/domain"
features = ["test"]

[dependencies.lldap_domain_model]
path = "../crates/domain-model"

[dependencies.lldap_domain_handlers]
path = "../crates/domain-handlers"

[dependencies.lldap_frontend_options]
path = "../crates/frontend-options"

[dependencies.lldap_graphql_server]
path = "../crates/graphql-server"

[dependencies.lldap_ldap]
path = "../crates/ldap"

[dependencies.lldap_sql_backend_handler]
path = "../crates/sql-backend-handler"

[dependencies.lldap_opaque_handler]
path = "../crates/opaque-handler"

[dependencies.lldap_validation]
path = "../crates/validation"

[dependencies.tracing-forest]
features = ["smallvec", "chrono", "tokio"]
version = "0.3"

[dependencies.actix-tls]
features = ["default", "rustls-0_23"]
version = "3"

[dependencies.reqwest]
workspace = true
default-features = false
features = ["rustls-tls-webpki-roots"]

[dependencies.url]
version = "2"
features = ["serde"]

[dev-dependencies]
assert_cmd = "2"
graphql_client = { workspace = true, features = ["graphql_query_derive", "reqwest-rustls"] }
ldap3 = { workspace = true }
mockall = { workspace = true }
nix = { version = "0.31", features = ["process", "signal"] }
pretty_assertions = { workspace = true }
uuid = { workspace = true }

[dev-dependencies.lldap_auth]
path = "../crates/auth"
features = ["test"]

[dev-dependencies.lldap_opaque_handler]
path = "../crates/opaque-handler"
features = ["test"]

[dev-dependencies.lldap_test_utils]
path = "../crates/test-utils"

[dev-dependencies.lldap_sql_backend_handler]
path = "../crates/sql-backend-handler"
features = ["test"]

[dev-dependencies.reqwest]
workspace = true
default-features = false
features = ["json", "blocking", "rustls-tls"]

[dev-dependencies.serial_test]
version = "2.0.0"
default-features = false
features = ["file_locks"]

[dev-dependencies.figment]
features = ["test"]
version = "0"
