Skip to content

Kilerd/mofa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mofa

the config lib that Merges options from anywhere

GitHub Workflow Status (with branch) Crates.io Crates.io (recent) docs.rs Crates.io

Features

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

Installation

$ cargo add mofa

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]).

About

Merge Options From Anywhere

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages