[package]
edition = "2021"
rust-version = "1.75"
name = "config-lib"
version = "0.9.8"
authors = ["James Gober <code@jamesgober.dev>"]
build = false
exclude = [
".github/",
".dev/",
"benches/",
"docs/",
"fuzz/",
]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Enterprise-grade multi-format configuration library supporting 8 formats (CONF, INI, Properties, JSON, XML, HCL, TOML, NOML) with sub-50ns caching, hot reloading, and comprehensive validation."
homepage = "https://github.com/jamesgober/config-lib"
documentation = "https://docs.rs/config-lib"
readme = "README.md"
keywords = [
"config",
"parser",
"toml",
"multi-format",
"hot-reload",
]
categories = [
"config",
"parsing",
"data-structures",
"development-tools",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/jamesgober/config-lib"
[features]
async = [
"dep:tokio",
"noml?/async",
]
chrono = [
"dep:chrono",
"noml?/chrono",
]
conf = []
default = [
"conf",
"hot-reload",
]
env-override = []
hcl = []
hot-reload = ["dep:notify"]
json = ["dep:serde_json"]
noml = ["dep:noml"]
schema = []
toml = ["dep:noml"]
validation = ["dep:regex"]
xml = ["dep:quick-xml"]
[lib]
name = "config_lib"
path = "src/lib.rs"
[[example]]
name = "audit_demo"
path = "examples/audit_demo.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "enterprise_demo"
path = "examples/enterprise_demo.rs"
[[example]]
name = "hcl_demo"
path = "examples/hcl_demo.rs"
[[example]]
name = "hot_reload_demo"
path = "examples/hot_reload_demo.rs"
[[example]]
name = "multi_format"
path = "examples/multi_format.rs"
[[example]]
name = "validation_demo"
path = "examples/validation_demo.rs"
[[example]]
name = "xml_demo"
path = "examples/xml_demo.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "validation_tests"
path = "tests/validation_tests.rs"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true
[dependencies.noml]
version = "=0.9.0"
features = []
optional = true
[dependencies.notify]
version = "6"
optional = true
[dependencies.quick-xml]
version = "0.31"
optional = true
[dependencies.regex]
version = "1.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.thiserror]
version = "1.0"
[dependencies.tokio]
version = "1.0"
features = [
"fs",
"io-util",
"macros",
"rt",
]
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.tempfile]
version = "3.8"
[dev-dependencies.tokio-test]
version = "0.4"
[profile.bench]
debug = 2
inherits = "release"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 0
panic = "abort"
overflow-checks = false