[package]
name = "stratify"
version = "1.1.0"
edition = "2021"
rust-version = "1.88.0"
description = "Layered configuration and structured logging for Rust services: pluggable sources, priority merging, typed access, and a tracing facade"
license = "MIT"
repository = "https://github.com/LogicOcean/stratify"
documentation = "https://docs.rs/stratify"
readme = "README.md"
keywords = ["config", "configuration", "logging", "layered", "tracing"]
categories = ["config", "development-tools::debugging"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_norway = "0.9"
toml = "1"
dotenvy = "0.15"
thiserror = "2"
tracing = "0.1"
async-trait = "0.1"
azure_core = { version = "1", optional = true }
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"], optional = true }
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "json", "time"], optional = true }
tracing-appender = { version = "0.2", optional = true }
time = { version = "0.3", features = ["formatting", "local-offset", "macros"], optional = true }
flate2 = { version = "1", optional = true }
opentelemetry = { version = "0.32", optional = true }
opentelemetry_sdk = { version = "0.32", optional = true }
opentelemetry-application-insights = { version = "0.45", default-features = false, features = ["logs", "trace"], optional = true }
opentelemetry-appender-tracing = { version = "0.32", optional = true }
tracing-opentelemetry = { version = "0.33", optional = true }
opentelemetry-http = { version = "0.32", features = ["reqwest-blocking"], optional = true }
[dev-dependencies]
tempfile = "3"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
azure_identity = "1"
filetime = "0.2"
[features]
default = []
azure = ["dep:azure_core", "dep:reqwest"]
logging = ["dep:tracing-subscriber", "dep:tracing-appender", "dep:time"]
compression = ["logging", "dep:flate2"]
appinsights = [
"logging",
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-application-insights",
"dep:opentelemetry-appender-tracing",
"dep:tracing-opentelemetry",
"dep:opentelemetry-http",
"reqwest/blocking",
"dep:reqwest",
]
[[example]]
name = "azure"
required-features = ["azure"]
[[example]]
name = "logging_basic"
required-features = ["logging"]
[[example]]
name = "file_rotation"
required-features = ["logging"]
[[example]]
name = "filter_reload"
required-features = ["logging"]
[package.metadata.docs.rs]
all-features = true
[profile.dev]
debug = "line-tables-only"
split-debuginfo = "unpacked"
[profile.test]
debug = "line-tables-only"
split-debuginfo = "unpacked"