Crates.io | confy |
lib.rs | confy |
version | 0.6.1 |
source | src |
created_at | 2016-03-08 21:42:50.680545 |
updated_at | 2024-03-01 00:35:22.843224 |
description | Boilerplate-free configuration management |
homepage | |
repository | https://github.com/rust-cli/confy |
max_upload_size | |
id | 4403 |
size | 56,369 |
Zero-boilerplate configuration management.
Focus on storing the right data, instead of worrying about how or where to store it.
use serde_derive::{Serialize, Deserialize};
#[derive(Default, Debug, Serialize, Deserialize)]
struct MyConfig {
version: u8,
api_key: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let cfg: MyConfig = confy::load("my-app-name", None)?;
dbg!(cfg);
Ok(())
}
confy
can be used with either TOML
, YAML
, or RON
files.
TOML
is the default language used with confy
but any of the other languages can be used by enabling them with feature flags as shown below.
Note: you can only use one of these features at a time, so in order to use either of the optional features you have to disable default features.
To use YAML
files with confy
you have to make sure you have enabled the yaml_conf
feature and disabled both toml_conf
and ron_conf
.
Enable the feature in Cargo.toml
:
[dependencies.confy]
features = ["yaml_conf"]
default-features = false
For using RON
files with confy
you have to make sure you have enabled the ron_conf
feature and disabled both toml_conf
and yaml_conf
.
Enable the feature in Cargo.toml
:
[dependencies.confy]
features = ["ron_conf"]
default-features = false
Information about adding context to error messages can be found at Providing Context
In this version we bumped several dependencies which have had changes with some of the default (de)serialization process:
serde_yaml
v0.8 -> v0.9: v0.9 release notes. There were several breaking changes to v0.9.0
and are listed in this release tag. Especially cases where previously numbers were parsed and now return String
. See the release notes for more details.toml
v0.5 -> v0.8: v0.8 CHANGELOG. Breaking change to how tuple variants work in toml
, from the notes: "Serialization and deserialization of tuple variants has changed from being an array to being a table with the key being the variant name and the value being the array".load
and store
have been added an optional parameter in the event multiples configurations are needed, or ones with different filename.load
and store
to be the same of the first one to keep the previous configuration file.toml
or as YAML
. The configuration's file name's extension depends on the format used.Starting with version 0.4.0 the configuration file are stored in the expected place for your system. See the directories
crates for more information.
Before version 0.4.0, the configuration file was written in the current directory.
This work is triple-licensed under MIT, MIT/X11, or the Apache 2.0 (or any later version). You may choose any one of these three licenses if you use this work.
SPDX-License-Identifier: MIT OR X11 OR Apache-2.0+