yaac 0.1.2

yet another another config lib for web application
Documentation

Features

  • hierarchy file supported: file source allow users to load config from multiple files
  • environment variable resolver: yaac can resolve the placeholder like ${APP_KEY_NAME}
  • path variable resolver: yaac can resolve the placeholder like ${parent.sub.key_name}

Installation

$ cargo add yaac

Example

#[derive(Debug, Deserialize)]
struct Config {
    original: String,
    value: String,
}
fn main() {
    let mut loader = ConfigLoader::new();
    loader.add_source(FileSource::new("configuration/application.toml"));
    loader.add_source(FileSource::new("configuration/application_database.toml"));
    loader.add_source(EnvironmentSource::new("APP"));
    loader.enable_environment_variable_processor();
    loader.enable_path_variable_processor();

    let config: Config = loader.construct()?;
}

Contributing

Want to join us? Check out our "Contributing" guide and take a look at some of these issues:

License

This project is licensed under MIT license (LICENSE-MIT or [http://opensource.org/licenses/MIT]).