5 releases

0.1.0 Mar 15, 2023
0.0.3 Oct 26, 2022
0.0.2 May 18, 2022
0.0.1 Apr 23, 2022
0.0.0 Apr 19, 2022

#1041 in Encoding

Download history 2274/week @ 2024-01-25 2148/week @ 2024-02-01 225/week @ 2024-02-08 1151/week @ 2024-02-15 2316/week @ 2024-02-22 2594/week @ 2024-02-29 1596/week @ 2024-03-07 2660/week @ 2024-03-14 2489/week @ 2024-03-21 2462/week @ 2024-03-28 1374/week @ 2024-04-04 1486/week @ 2024-04-11 1734/week @ 2024-04-18 1707/week @ 2024-04-25 1376/week @ 2024-05-02 3173/week @ 2024-05-09

8,298 downloads per month
Used in blooming

Apache-2.0

34KB
683 lines

serfig   Build Status Latest Version

Layered configuration system built upon serde

Quick Start

use serde::{Deserialize, Serialize};
use serfig::collectors::{from_env, from_file, from_self};
use serfig::parsers::Toml;
use serfig::Builder;

#[derive(Debug, Serialize, Deserialize, PartialEq, Default)]
#[serde(default)]
struct TestConfig {
    a: String,
    b: String,
    c: i64,
}

fn main() -> anyhow::Result<()> {
    let builder = Builder::default()
        .collect(from_env())
        .collect(from_file(Toml, "config.toml"))
        .collect(from_self(TestConfig::default()));
    let t: TestConfig = builder.build()?;

    println!("{:?}", t);
    Ok(())
}

Contributing

Check out the CONTRIBUTING.md guide for more details on getting started with contributing to this project.

Getting help

Submit issues for bug report or asking questions in discussion.

Acknowledgment

This project is highly inspired by config-rs

License

Licensed under Apache License, Version 2.0.

Dependencies

~2MB
~34K SLoC