config-rs

Build Status

Layered configuration system for Rust applications (with strong support for [12-factor] applications).

Install

toml [dependencies] config = { git = "https://github.com/mehcode/config-rs.git" }

Features

Usage

Configuration is gathered by building a Source and then merging that source into the current state of the configuration.

```rust // Add environment variables that begin with RUST_ config::merge(config::Environment::new("RUST"));

// Add 'Settings.json' config::merge(config::File::new("Settings", config::FileFormat::Json));

// Add 'Settings.$(RUSTENV).json` let name = format!("Settings.{}", config::getstr("env").unwrap()); config::merge(config::File::new(&name, config::FileFormat::Json)); ```

Note that in the above example the calls to config::merge could have been re-ordered to influence the priority as each successive merge is evaluated on top of the previous.

See the examples for more usage information.

Roadmap

All suggestions are welcome. Please make an issue.

License

config-rs is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.