3 releases
0.1.2 | Jan 29, 2025 |
---|---|
0.1.1 | Jan 26, 2025 |
0.1.0 | Dec 27, 2024 |
#412 in Filesystem
301 downloads per month
22KB
464 lines
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).
Dependencies
~3–4MB
~74K SLoC