#config #configuration #settings #env #environment

config

Layered configuration system for Rust applications

22 releases

0.10.1 Dec 8, 2019
0.9.3 May 9, 2019
0.9.2 Jan 3, 2019
0.9.1 Sep 26, 2018
0.1.1 Apr 30, 2015

#2 in Configuration

Download history 8339/week @ 2019-12-17 5148/week @ 2019-12-24 7351/week @ 2019-12-31 11261/week @ 2020-01-07 10464/week @ 2020-01-14 13503/week @ 2020-01-21 13617/week @ 2020-01-28 14223/week @ 2020-02-04 10643/week @ 2020-02-11 10553/week @ 2020-02-18 10511/week @ 2020-02-25 11010/week @ 2020-03-03 10366/week @ 2020-03-10 12354/week @ 2020-03-17 12945/week @ 2020-03-24 11474/week @ 2020-03-31

37,971 downloads per month
Used in 166 crates (114 directly)

MIT/Apache

105KB
3K SLoC

config-rs

Rust Build Status Crates.io Docs.rs

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

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–1.6MB
~36K SLoC