confpiler

Crates.ioconfpiler
lib.rsconfpiler
version0.2.2
sourcesrc
created_at2022-03-06 03:59:02.761794
updated_at2022-04-21 18:10:40.954446
descriptionA configuration "compiler" to aid in turning configuration file(s) into environment variables.
homepagehttps://github.com/mattcl/confpiler
repositoryhttps://github.com/mattcl/confpiler
max_upload_size
id544362
size52,259
Matt Chun-Lum (mattcl)

documentation

README

Confpiler (crate)

This crate provides a mechanism for "compiling" an ordered set of configuration files into a single, flattened representation suitable for exporting to environment variables.

Transforming

## default.yaml
foo:
    bar: 10
    baz: false
hoof: doof

## production.yaml
foo:
    baz: true

into something like

"FOO__BAR": "10"
"FOO__BAZ": "false"
"HOOF": "doof"

via

use confpiler::FlatConfig;

let (conf, warnings) = FlatConfig::builder()
    .add_config("foo/default")
    .add_config("foo/production")
    .build()
    .expect("invalid config");

All values are converted to strings, with simple arrays being collapsed to delimited strings (with the default separator being ,).

This does not support arrays containing more complex values like other arrays and maps.

The following formats are currently supported:

  • JOSN
  • TOML
  • YAML
  • INI
Commit count: 68

cargo fmt