[package] name = "authzen-service-util" version = "0.1.0-alpha.0" description = "Backend service utilities." authors.workspace = true edition.workspace = true categories.workspace = true keywords.workspace = true homepage.workspace = true repository.workspace = true license.workspace = true build = "build.rs" [package.metadata.docs.rs] all-features = true [build-dependencies] rustc_version.workspace = true [dependencies] authzen-diesel = { workspace = true, version = "0.1.0-alpha.0", optional = true } authzen-session = { workspace = true, version = "0.1.0-alpha.0", features = ["account-session"], optional = true } anyhow.workspace = true async-backtrace.workspace = true cfg-if.workspace = true derivative.workspace = true hyper.workspace = true lazy_static.workspace = true paste.workspace = true thiserror.workspace = true tower-http = { workspace = true, features = ["cors"] } tracing.workspace = true async-graphql = { workspace = true, optional = true } async-trait = { workspace = true, optional = true } axum-core = { workspace = true, optional = true } cookie = { workspace = true, optional = true } concat-string = { workspace = true, optional = true } data-encoding = { workspace = true, optional = true } derive_more = { workspace = true, optional = true } diesel = { workspace = true, optional = true } futures = { workspace = true, optional = true } mongodb = { workspace = true, optional = true } opentelemetry = { workspace = true, optional = true } opentelemetry-jaeger = { workspace = true, optional = true } ring = { workspace = true, optional = true } serde = { workspace = true, optional = true } serde_json = { workspace = true, optional = true } serde_qs = { workspace = true, optional = true } tonic = { workspace = true, optional = true } tokio = { workspace = true, features = ["signal"], optional = true } tower = { workspace = true, optional = true } tower-layer = { workspace = true, optional = true } tower-service = { workspace = true, optional = true } tracing-error = { workspace = true, optional = true } tracing-log = { workspace = true, optional = true } tracing-opentelemetry = { workspace = true, optional = true } tracing-subscriber = { workspace = true, features = ["env-filter"], optional = true } tracing-tree = { workspace = true, optional = true } uuid = { workspace = true, features = ["serde", "v4"], optional = true } axum-05 = { package = "axum", workspace = true, default-features = false, optional = true } axum-06 = { package = "axum", workspace = true, default-features = false, optional = true } headers = { workspace = true, optional = true } [features] default = ["http1", "max-allowed-request-body-size-medium"] axum-05 = ["dep:axum-05", "dep:headers", "authzen-session/axum-core-02"] axum-06 = ["dep:axum-06", "dep:headers", "authzen-session/axum-core-03"] client = ["async-trait", "concat-string", "futures", "hyper/client", "serde", "serde_json", "serde_qs", "trace"] db = ["authzen-diesel", "diesel", "serde"] graphql = ["async-graphql", "authzen-diesel", "diesel", "serde"] grpc = ["tonic"] http1 = ["hyper/http1"] http2 = ["hyper/http2"] log_error = [] max-allowed-request-body-size-large = [] max-allowed-request-body-size-medium = [] max-allowed-request-body-size-small = [] server = ["derive_more", "futures", "opentelemetry/rt-tokio", "serde", "serde_json", "authzen-session", "tokio", "tokio/macros", "tower", "tower/timeout", "tower-http/request-id", "trace", "try-join-safe", "uuid"] trace = ["opentelemetry", "opentelemetry-jaeger/rt-tokio", "tracing-error", "tracing-log", "tracing-opentelemetry", "tracing-subscriber", "tracing-tree", "uuid"] try-join-safe = ["futures"]