10 releases
0.5.0 | Mar 30, 2024 |
---|---|
0.4.3 | Aug 30, 2023 |
0.4.2 | Jul 3, 2023 |
0.4.1 | Jun 5, 2023 |
0.1.1 | Mar 13, 2023 |
#530 in Encoding
310 downloads per month
Used in 3 crates
18KB
308 lines
Universal Config
Universal Config is a library for Rust to simplify reading and writing 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 and saving the file.
Currently, the following formats are supported:
- JSON via
serde_json
- YAML via
serde_yaml
- TOML via
toml
- XML via
serde_xml_rs
- Corn via
libcorn
- Ron via
ron
Installation
Just add the crate:
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
:
[dependencies.universal-config]
version = "0.1.0"
default-features = false
features = ["json", "toml"]
Example usage
use universal_config::ConfigLoader;
use serde::Deserialize;
#[derive(Deserialize)]
struct MyConfig {
foo: String,
}
fn main() {
let config: MyConfig = ConfigLoader::new("my-app").find_and_load().unwrap();
println!("{}", config.foo);
}
For more advanced usage, please check the docs.
Dependencies
~1–13MB
~105K SLoC