cfg-rs: A Configuration Library for Rust Applications

Crates.io Crates.io Documentation dependency status License Actions Status

Major Features

See the examples for general usage information.

Supported File Format

How to Initialize Configuration

rust,no_run use cfg_rs::*; let configuration = Configuration::with_predefined().unwrap(); // use configuration. See init for details.

rust,no_run use cfg_rs::*; init_cargo_env!(); let configuration = Configuration::with_predefined_builder() .set_cargo_env(init_cargo_env()) .init() .unwrap(); // use configuration. See init for details.

```rust,norun use cfgrs::*; initcargoenv!(); let mut configuration = Configuration::new() // Layer 0: Register cargo env config source. .registersource(initcargoenv()).unwrap() // Layer 1: Register customized config. .registerkv("customized_config") .set("hello", "world") .finish() .unwrap(); // Layer 2: Register random value config.

[cfg(feature = "rand")]

{ configuration = configuration.registerrandom().unwrap(); } // Layer 3: Register all env variables CFG_*. configuration = configuration.registerprefixenv("CFG").unwrap() // Layer 4: Register yaml file(Need feature yaml). .registerfile("/conf/app.yaml", true).unwrap();

[cfg(feature = "toml")]

{ let toml = inlinesource!("../app.toml").unwrap(); configuration = configuration.registersource(toml).unwrap(); }

// use configuration. ``` See registerkv, registerfile, registerrandom, registerprefix_env for details.