#configuration #environment #env #settings #env-var

okcodes-config

Layered configuration system for Rust applications

2 releases

new 0.14.1 Apr 17, 2024
0.14.0 Apr 17, 2024

#230 in Configuration

MIT/Apache

145KB
3.5K SLoC

config-rs

Just a clone of config created to test opened and non-merged PRs on that project. This crate is unstable since early features will be tested here, the original config crate should be used.


lib.rs:

Config organizes hierarchical or layered configurations for Rust applications.

Config lets you set a set of default parameters and then extend them via merging in configuration from a variety of sources:

  • Environment variables
  • String literals in well-known formats
  • Another Config instance
  • Files: TOML, JSON, YAML, INI, RON, JSON5 and custom ones defined with Format trait
  • Manual, programmatic override (via a .set method on the Config instance)

Additionally, Config supports:

  • Live watching and re-reading of configuration files
  • Deep access into the merged configuration via a path syntax
  • Deserialization via serde of the configuration or any subset defined via a path

See the examples for general usage information.

Dependencies

~2–5MB
~95K SLoC