0
点赞
收藏
分享

微信扫一扫

【每周一库】configster - Rust library for parsing configuration files

本期的每周一库带来的是一个简单的配置文件读取库Configster

当我们基于大型现成开发框架做开发的时候,配置文件的定义和格式早已被设置的妥妥当当,我们只需要在对应的文件中遵循格式做设置即可,例如dotnet开发中的App.config,定义好key和value,直接在程序中引用Configuration object就可以方便的读取配置信息。

但是当我们做一些轻量级cli程序或自己基于一些轮子做开发时,如果把配置信息都写到程序里会造成一些开发效率的折损。这时候一个能够快速嵌入到程序中的配置文件库就非常讨巧了。

Configster就是一个这样轻量级的配置文件库

它的github仓库给出了api介绍和一个简单的例子,configster的配置文件api定义非常简单

#[derive(Debug, PartialEq)]
pub struct Value {
pub primary: String,
pub attributes: Vec<String>,
}

#[derive(Debug, PartialEq)]
pub struct OptionProperties {
pub option: String,
pub value: Value,
}

我们只需要遵循这个定义就可以在我们的rust程序中使用配置文件中定义的值

接下来我们来试用一下configster

测试环境

  • Windows 10
  • ​cargo --version​​: cargo 1.46.0-nightly (089cbb80b 2020-06-15)
  • ​rustc --version​​: rustc 1.46.0-nightly (6bb3dbfc6 2020-06-22)

当前configster的release版本是0.1.1,这里使用configster例子来试用

  • configster - github

在工程根目录创建配置文件​​configuration.conf​​,并写入如下内容

type = "每周一库"
lib_name = "configster"

写入github页面示例代码

use std::io;

fn main() -> Result<(), io::Error> {

let config_vec = configster::parse_file("./configuration.conf", ',')?;

for i in &config_vec {
println!("Option:'{}' | value '{}'", i.option, i.value.primary);

for j in &i.value.attributes {
println!("attr:'{}`", j);
}
println!();
}
Ok(())
}

运行结果如下

【每周一库】configster - Rust library for parsing configuration files_配置文件

以上就是本期每周一库的全部内容


举报

相关推荐

0 条评论