Melds configs from files, env, and CLI into a clean, validated strong typed "effective configuration".
This crate is still in an experimental stage for providing the following distinctive features:
- Configs are saved and loaded from files, alongside with their docs.
- The config file is created if one doesn't exist. Default values are filled in.
- Different config file formats are supported. Currently, YAML and RON.
- Config file encryption is supported through
encryptable-tokio-fs - CLI options are meant to override any configs specified in files.
- However, the CLI models are first-class object, as they may contain options not suitable for a configuration file, such as specifying "where the config file is located at".
Still missing:
- ENV integration not fully implemented.
- Include the Rust docs alongside the the default config files
NOTE: the currently recommended way of using encryptable-tokio-fs in your project is through the re-export we do of it
in this crate -- it is the most effective way both will use the same version.