Rust 的 config
库支持多种配置文件格式,包括但不限于以下几种:
- YAML
- JSON
- TOML
- INI
- RON
- JSON5
- 自定义格式(通过
Format
trait 定义)
如何使用 config
库
- 添加依赖:在
Cargo.toml
文件中添加config
和serde
依赖。 - 创建配置文件:在项目根目录下创建配置文件,例如
config/default.yml
。 - 定义配置结构体:使用
serde
的Deserialize
特性定义与配置文件结构对应的 Rust 结构体。 - 加载配置文件:使用
Config::builder()
构建配置加载器,读取并反序列化配置文件到定义的结构体中。
示例代码
以下是一个简单的示例,展示如何使用 config
库加载和解析 YAML 配置文件:
use config::{Config, ConfigError, File}; use serde::Deserialize; #[derive(Debug, Deserialize)] pub struct ServerConfig { pub host: String, pub port: u16, } #[derive(Debug, Deserialize)] pub struct DatabaseConfig { pub user: String, pub password: String, pub name: String, } #[derive(Debug, Deserialize)] pub struct AppConfig { pub server: ServerConfig, pub database: DatabaseConfig, } fn load_config() -> Result{ let mut config = Config::builder() .add_source(File::with_name("src/config/default.yml").required(true)) .build()?; config.try_deserialize(&AppConfig::default()) } fn main() -> Result<(), Box > { let config = load_config()?; println!("Loaded configuration: {:#?}", config); Ok(()) }
通过上述步骤和示例代码,你可以轻松地在 Rust 项目中加载和管理不同格式的配置文件。