#configuration #env-var #compiler #config-file #yaml #default #foo

confpiler

A configuration "compiler" to aid in turning configuration file(s) into environment variables

4 个版本

0.2.2 2022 年 4 月 21 日
0.2.1 2022 年 4 月 11 日
0.2.0 2022 年 3 月 8 日
0.1.0 2022 年 3 月 6 日

#876 in 配置

每月 28 下载
confpiler_cli 中使用

MIT/Apache

33KB
535 代码行

Confpiler (crate)

此 crate 提供了一种机制,可以将有序的配置文件集“编译”成一个适合导出到环境变量的单个、扁平化的表示形式。

转换

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

## production.yaml
foo:
    baz: true

成如下形式

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

通过

use confpiler::FlatConfig;

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

所有值都转换为字符串,简单数组被折叠为分隔字符串(默认分隔符为 ,)。

此功能不支持包含其他数组和映射等更复杂值的数组。

目前支持以下格式

  • JSON
  • TOML
  • YAML
  • INI

依赖项

~2.1–3MB
~63K SLoC