26次发布
0.10.19 | 2024年5月17日 |
---|---|
0.10.15 | 2024年3月16日 |
0.10.13 | 2023年12月31日 |
0.10.12 | 2023年10月30日 |
0.9.4 | 2020年10月30日 |
#4 在 配置 中排名
每月 314,982次下载
在 535 个 Crates中使用(151 个直接使用)
305KB
4K SLoC
Figment
Figment是一个半分层配置库,为Rust提供如此自由的配置,简直不可思议。
use serde::Deserialize;
use figment::{Figment, providers::{Format, Toml, Json, Env}};
#[derive(Deserialize)]
struct Package {
name: String,
authors: Vec<String>,
publish: Option<bool>,
// ... and so on ...
}
#[derive(Deserialize)]
struct Config {
package: Package,
rustc: Option<String>,
// ... and so on ...
}
let config: Config = Figment::new()
.merge(Toml::file("Cargo.toml"))
.merge(Env::prefixed("CARGO_"))
.merge(Env::raw().only(&["RUSTC", "RUSTDOC"]))
.join(Json::file("Cargo.json"))
.extract()?;
请参阅文档以获取详细使用指南和信息。
使用方法
将以下内容添加到您的Cargo.toml
中,启用所需的内置提供程序
[dependencies]
figment = { version = "0.10", features = ["toml", "env"] }
第三方提供程序
以下外部库实现了Figment提供程序
-
包装现有提供程序。对于任何以
_FILE
(可配置)结尾的键,发出没有_FILE
后缀的键,其值对应于路径为原始键值的文件的正文。
请提交一个pull request将您的库添加到这个列表中。
许可证
Figment根据您的选择,许可如下
- Apache许可证2.0版本,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖项
~0.1–9.5MB
~101K SLoC