[package]
name = "themelio"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
rust-version.workspace = true
exclude.workspace = true
description = "Themelio: EU-regulation-focused, compliance-by-construction infrastructure for Rust services. Facade re-exporting the curated public API under feature flags."

[features]
default = []
# Consumer-facing feature names are unchanged (ADR 0025); each now forwards to a
# feature on one of the five crates. The spine (foundation) is always available.
compliance = ["themelio-foundation/compliance"]
primitives = ["themelio-foundation/primitives"]
runtime = ["dep:themelio-runtime"]
audit = ["dep:themelio-runtime", "themelio-runtime/audit"]
clock = ["dep:themelio-runtime", "themelio-runtime/clock"]
password = ["dep:themelio-runtime", "themelio-runtime/password"]
mfa = ["dep:themelio-runtime", "themelio-runtime/mfa"]
auth = ["dep:themelio-runtime", "themelio-runtime/auth"]
tracing = ["dep:themelio-runtime", "themelio-runtime/tracing"]
# Storage: the trait, with backends as features. A backend implies the trait
# re-export (`themelio::storage`), matching the pre-consolidation behaviour.
storage = ["dep:themelio-storages"]
storage-memory = ["storage", "themelio-storages/memory"]
storage-postgres = ["storage", "themelio-storages/postgres"]
# Adapters.
api-axum = ["dep:themelio-apis", "themelio-apis/axum"]

[dependencies]
themelio-foundation = { workspace = true }
themelio-runtime = { workspace = true, optional = true }
themelio-storages = { workspace = true, optional = true }
themelio-apis = { workspace = true, optional = true }

[lints]
workspace = true
