config-plus

Crates.ioconfig-plus
lib.rsconfig-plus
version0.1.15
created_at2025-06-23 09:02:02.137451+00
updated_at2025-08-12 06:10:02.0565+00
description对config库的增强
homepage
repositoryhttps://gitee.com/itao007/config-plus.git
max_upload_size
id1722646
size56,493
itao (bj-sjt)

documentation

https://docs.rs/config-plus

README

为结构体生成一个config方法,调用该方法可以读取配置文件中的属性 使用方式

#[derive(Debug, Deserialize, Configuration)]
#[properties(prefix = "push.file", file(path = "application.yml", require = true))]

#[properties]可以配置的属性

  • prefix: 读取配置文件的前缀
  • file: 配置文件的路径(可以配置多个file属性)
    • path: 文件路径
    • require: 文件是否必须(默认false)
  • http: 配置http属性(可以配置多个http属性)
    • url: http的url
    • method: 请求方法(只支持get和post两种, 默认是get)
    • format: 返回的字符串的格式(支持 toml、json、yaml、yml、json5、ini、ron)
  • environment: 是否从环境变量中读取,默认为true

优先级: http > environment > file

示例

#[derive(Debug, Deserialize, Configuration)]
#[properties(
  prefix = "push.file",
  file(path = "application.yml", require = true),
  http(url = "http://127.0.0.1:8080/toml", format = "toml"),
  environment = true
)]
 #[serde(rename_all(deserialize = "camelCase"))]
 struct PushFile {
     enable: u8,
     app_id: String,
     app_key: String,
     master_secret: String,
     package_name: String,
 }

 let config = PushFile::config();
Commit count: 0

cargo fmt