#config-file #config-toml #default-config #config #serialize-deserialize #name #locations

config-dirs

Load a config file by trying out default config file locations

1 unstable release

0.1.0 Jun 16, 2024

#6 in #default-config

MIT/Apache

7KB
59 lines

config-dirs

Load a config file by trying out default config file locations:

  • {NAME_UPPERCASE}_CONFIG envitonment variable
  • ~/.config/{name}/config.toml
  • /etc/{name}/config.toml
  • /usr/local/etc/{name}/config.toml
  • ~/Library/Preferences/{name}/config.toml
  • /usr/local/etc/{name}/config.toml
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
struct Config {}

let config: Config = config_dirs::load("my-app", toml::from_str).expect("Failed to load config");

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in config-dirs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

lib.rs:

Load a config file by trying out default config file locations:

  • {NAME_UPPERCASE}_CONFIG envitonment variable
  • ~/.config/{name}/config.toml
  • /etc/{name}/config.toml
  • /usr/local/etc/{name}/config.toml
  • ~/Library/Preferences/{name}/config.toml
  • /usr/local/etc/{name}/config.toml
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
struct Config {}

let config: Config = config_dirs::load("my-app", toml::from_str).expect("Failed to load config");

Dependencies

~0.6–11MB
~66K SLoC