[package] name = "confik" version = "0.12.0" description = "A library for reading application configuration split across multiple sources" authors.workspace = true keywords.workspace = true categories.workspace = true repository.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [package.metadata.cargo-machete] ignored = [ "humantime_serde", # used in serde macro attributes "serde_with", # used in doctests ] [features] default = ["env", "toml"] # Source types env = ["dep:envious"] json = ["dep:serde_json"] toml = ["dep:toml"] # Destination types bigdecimal = ["dep:bigdecimal"] bytesize = ["dep:bytesize"] camino = ["dep:camino"] chrono = ["dep:chrono"] common = [] ipnetwork = ["dep:ipnetwork"] rust_decimal = ["dep:rust_decimal"] secrecy = ["dep:secrecy"] url = ["dep:url"] uuid = ["dep:uuid"] [dependencies] confik-macros = "=0.12.0" cfg-if = "1" serde = { version = "1", default-features = false, features = ["std", "derive"] } thiserror = "1" envious = { version = "0.2", optional = true } serde_json = { version = "1", optional = true } toml = { version = "0.8", optional = true, default-features = false, features = ["parse"] } bigdecimal = { version = "0.4", optional = true, features = ["serde"] } bytesize = { version = "1", optional = true, features = ["serde"] } camino = { version = "1", optional = true, features = ["serde1"] } chrono = { version = "0.4.20", optional = true, default-features = false, features = ["serde"] } ipnetwork = { version = "0.20", optional = true, features = ["serde"] } rust_decimal = { version = "1", optional = true, features = ["serde"] } secrecy = { version = "0.10", optional = true, features = ["serde"] } url = { version = "2", optional = true, features = ["serde"] } uuid = { version = "1", optional = true, features = ["serde"] } [dev-dependencies] assert_matches = "1.5" humantime-serde = "1" indoc = "2" serde_with = "3" temp-env = "0.3" tempfile = "3" [[example]] name = "simple" required-features = ["toml"] [[example]] name = "derives" required-features = ["toml", "camino"] [[example]] name = "secret_string" required-features = ["toml", "secrecy"] [[example]] name = "bigdecimal" required-features = ["toml", "bigdecimal"]