tin-config-load
基于 config 的轻量 Rust 配置加载库,从文件与环境变量分层加载配置。
用法
默认加载可选文件 ./config/default(扩展名自动探测,支持 TOML/JSON/YAML 等格式)与 APP_ 前缀的环境变量:
use Deserialize;
use ConfigLoader;
优先级
- 文件 source 按注册顺序加载,后注册的覆盖先注册的;
- 环境变量 source 始终在文件之后加载,因此环境变量恒覆盖文件,与
file/env的调用顺序无关; - 环境变量之间同样按注册顺序,后注册的覆盖先注册的。
ConfigLoader::default() 等价于:
empty
.optional_file
.env
需要完全自定义默认路径与前缀时,从 ConfigLoader::empty() 开始装配即可。
错误处理
build() 返回自有错误类型 ConfigError,区分两类失败:
ConfigError::Build:读取或解析配置源失败,例如必选文件不存在;ConfigError::Deserialize:配置构建成功,但无法反序列化为目标类型。
注意事项
- 相对路径基于进程当前工作目录(CWD)解析,需要稳定定位时请使用绝对路径;
- 文件扩展名可省略(自动探测),也可传完整路径(如
config/local.toml)。
License
MIT