9 个版本
0.2.6 | 2024年7月28日 |
---|---|
0.2.5 | 2024年7月23日 |
0.2.2 | 2024年5月31日 |
0.1.1 | 2024年5月30日 |
#849 在 配置 中
每月 466 次下载
用于 2 crates
22KB
516 行
metre:Rust 配置加载器
又名:#[derive(Config)]
是什么?
metre 是一个 Rust 配置加载器,允许您从多种格式(如 toml、json、jsonc 和 yaml)加载配置。
它还支持多种来源,如 程序默认值、环境变量、文件 和 URL。
用法
use metre::{Config, ConfigLoader, Format};
#[derive(Config)]
struct MyConfig {
#[config(default = 8000)]
port: u16,
foo: String
}
let mut loader = ConfigLoader::<MyConfig>::new();
loader.defaults()?;
loader.file("config.json", Format::Json)?;
loader.env()?;
// config have the type MyConfig here
let config = loader.finish()?;
重点
metre 的重点是提供一个 声明性 和 类型安全 的方式在 Rust 中加载配置。
如何?
metre 通过定义一个实现 Config
特质的 struct 来工作,通常通过 #[derive(Config)]
宏。
metre 在内部创建 struct 的深部分版本以从不同来源累积配置。
一旦所有配置都累积完成,您就可以通过定义的 struct 访问最终配置。如果所有来源的总和不符合所需属性,metre 将返回错误。
安装
cargo add metre
文档
依赖项
~3–4.5MB
~81K SLoC