#config-toml #utility #parser #serde #derive-debug #debugging

confik

一个用于读取分散在多个源的应用程序配置的库

15个版本 (5个重大更新)

0.11.7 2024年3月23日
0.11.5 2024年1月30日
0.11.4 2023年12月4日
0.11.3 2023年11月12日
0.10.0 2023年7月17日

#51 in 配置

Download history 1415/week @ 2024-05-01 1010/week @ 2024-05-08 1211/week @ 2024-05-15 1109/week @ 2024-05-22 1407/week @ 2024-05-29 446/week @ 2024-06-05 1441/week @ 2024-06-12 924/week @ 2024-06-19 695/week @ 2024-06-26 536/week @ 2024-07-03 761/week @ 2024-07-10 1253/week @ 2024-07-17 2665/week @ 2024-07-24 1628/week @ 2024-07-31 1825/week @ 2024-08-07 1774/week @ 2024-08-14

每月8,069次下载

MIT/Apache

62KB
1K SLoC

confik

crates.io Documentation dependency status MIT or Apache 2.0 licensed
CI codecov Version Download

这个crate提供创建配置/设置结构的宏和从文件和环境读取它们的函数。

示例

假设config.toml包含

host = "google.com"
username = "root"

并且环境包含

PASSWORD=hunter2

那么

use confik::{Configuration, EnvSource, FileSource};

#[derive(Debug, PartialEq, Configuration)]
struct Config {
    host: String,
    username: String,

    #[confik(secret)]
    password: String,
}

fn main() {
    let config = Config::builder()
        .override_with(FileSource::new("config.toml"))
        .override_with(EnvSource::new().allow_secrets())
        .try_build()
        .unwrap();

    assert_eq!(
        config,
        Config {
            host: "google.com".to_string(),
            username: "root".to_string(),
            password: "hunter2".to_string(),
        }
    );
}

许可证

本项目采用Apache License,版本2.0或MIT License,由您选择。

  • Apache License,版本2.0
  • MIT License

由您选择。

依赖

~2.7–4.5MB
~94K SLoC