Universal Config is a library for Rust to simplify reading configuration files. It is able to automatically locate config files from standard locations, and has support for various file formats.
The crate does not offer a lot of functionality, leaving that to Serde and your implementation. Instead, it just deals with loading the file.
Currently, the following formats are supported:
serde_json
serde_yaml
toml
serde_xml_rs
libcorn
Just add the crate:
bash
cargo add universal-config
By default, support for all languages is included.
You can enable/disable languages using feature flags. For example, in your Cargo.toml
:
toml
[dependencies.universal-config]
version = "0.1.0"
default-features = false
features = ["json", "toml"]
```norun use universalconfig::ConfigLoader; use serde::Deserialize;
struct MyConfig { foo: String, }
fn main() { let config: MyConfig = ConfigLoader::new("my-app").findandload().unwrap(); println!("{}", config.foo); } ```
For more advanced usage, please check the docs.