settings_loader 1.0.0

Opinionated configuration settings load mechanism for Rust applications
Documentation
[package]
name = "settings_loader"
version = "1.0.0"
edition = "2021"
authors = ["Damon Rolfs <drolfs@gmail.com>"]
description = "Opinionated configuration settings load mechanism for Rust applications"
license = "MIT"
repository = "https://github.com/dmrolfs/settings-loader-rs"
homepage = "https://github.com/dmrolfs/settings-loader-rs"
documentation = "https://docs.rs/settings-loader"
readme = "README.md"
keywords = ["configuration", "environment", "env", "settings", "config"]
categories = ["config", "development-tools"]

[lints.rust]
unsafe_code = "forbid"
rust_2018_idioms = { level = "warn", priority = -1 }
rust_2021_compatibility = { level = "warn", priority = -1 }
rust_2021_incompatible_closure_captures = "warn"
rust_2021_prelude_collisions = "warn"

[lints.clippy]
cargo = "warn"
suspicious = "warn"

[workspace]
resolver = "2"

[features]
default = ["metadata"]
database = ["sqlx", "secrecy", "zeroize"]
http = ["url"]
multi-scope = ["directories"]
editor = ["toml_edit", "parking_lot", "toml", "serde_json", "serde_yaml"]
metadata = ["serde_json", "regex", "zeroize"]
serde = []

[dependencies]
anyhow = "^1.0.100"
config = { version = "^0.15.19", default-features = true }
globwalk = "^0.9.1"
once_cell = "^1.21.3"
parking_lot = { version = "^0.12.5", optional = true }
path-absolutize = "^3.1.1"
regex = { version = "^1.12.2", optional = true }
secrecy = { version = "^0.10.3", features = ["serde"], optional = true }
directories = { version = "^5.0.1", optional = true }
toml = { version = "^0.8.23", optional = true }
toml_edit = { version = "^0.22.27", optional = true }
serde = { version = "^1.0.228", features = ["derive"] }
serde_json = { version = "^1.0.145", optional = true }
serde_with = { version = "^3.16.1", features = ["chrono", "json", "macros"] }
serde_yaml = { version = "^0.9.34", optional = true }
thiserror = "^1.0.69"
tracing = "^0.1.44"
tracing-bunyan-formatter = "^0.3.10"
tracing-log = "^0.2.0"
tracing-subscriber = { version = "^0.3.22", features = ["env-filter"] }
sqlx = { version = "^0.8.6", default-features = false, features = ["postgres", "runtime-tokio-rustls"], optional = true }
url = { version = "^2.5.7", optional = true }
zeroize = { version = "^1.8.2", optional = true }

[dev-dependencies]
pretty_assertions = "^1.4.1"
assert_matches2 = "^0.1.2"
fake = { version = "^2.10.0", features = ["chrono"] }
trim-margin = "^0.1.0"
serde_json = "^1.0.145"
serde_yaml = "^0.9.34"
tempfile = "^3.23.0"
serial_test = "^3.2.0"
clap = { version = "^4.5.53", features = ["derive"] }
proptest = "^1.9.0"