3 stable releases

1.1.0 Aug 17, 2024
1.0.1 Aug 17, 2024
1.0.0 Jul 24, 2024

#286 in Configuration

Download history 56/week @ 2024-07-18 72/week @ 2024-07-25 4/week @ 2024-08-01 228/week @ 2024-08-15 13/week @ 2024-08-22

83 downloads per month
Used in htrace

MIT/Apache

13KB
318 lines

HConfig

A file configuration manager library that simplify access of json configuration files from a dir.

if a config file is not existing, it will be created. Any var is accessed by a path. Saving use atomic method disallowing partial load from other app/process/etc.

the used serde_json crate is re-exported via "Hconfig::serde_json"

Online Documentation

Master branch

Example

fn main()
{
    // configuration path, the directory need to be existing or created before continuing
	HConfigManager::singleton().setConfPath("./config");
	
	// get a "config", the name "example" mean "./config/example.json"
	let mut config = HConfigManager::singleton().get("example");
	
	// exemple of getting a var and getting a string (parse is from serde_json)
	let myVar: Option<Value> = config.get("name");
	let myString: String = config.get("path/to/myvar").unwrap().as_str().unwrap().to_string();
	
	config.set("path/to/save",JsonValue::String("test is update".to_string()));
	
	// save config modification.
	config.save();
}

you can also check tests.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2–8.5MB
~59K SLoC