#config #configuration #settings #env #environment

config

Layered configuration system for Rust applications

17 releases (9 breaking)

0.9.0 Jul 2, 2018
0.8.0 Jan 26, 2018
0.7.1 Jan 26, 2018
0.7.0 Aug 5, 2017
0.1.1 Apr 30, 2015

#4 in Configuration

Download history 1744/week @ 2018-09-18 2029/week @ 2018-09-25 2054/week @ 2018-10-02 1627/week @ 2018-10-09 1795/week @ 2018-10-16 2040/week @ 2018-10-23 2079/week @ 2018-10-30 2473/week @ 2018-11-06 2485/week @ 2018-11-13 3110/week @ 2018-11-20 2683/week @ 2018-11-27 3564/week @ 2018-12-04 3204/week @ 2018-12-11

5,617 downloads per month
Used in 53 crates (43 directly)

MIT/Apache

106KB
3K SLoC

config-rs

Rust Build Status Crates.io Docs.rs IRC

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

  • Set defaults
  • Set explicit values (to programmatically override)
  • Read from JSON, TOML, YAML, HJSON, INI files
  • Read from environment
  • Loosely typed — Configuration values may be read in any supported type, as long as there exists a reasonable conversion
  • Access nested fields using a formatted path — Uses a subset of JSONPath; currently supports the child ( redis.port ) and subscript operators ( databases[0].name )

Usage

[dependencies]
config = "0.9"
  • ini - Adds support for reading INI files
  • json - Adds support for reading JSON files
  • hjson - Adds support for reading HJSON files
  • yaml - Adds support for reading YAML files
  • toml - Adds support for reading TOML files (included by default)

See the documentation or examples for more usage information.

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.

Dependencies

~1.5MB
~35K SLoC