All Versions
15
Latest Version
Avg Release Cycle
74 days
Latest Release
4 days ago

Changelog History
Page 1

  • v0.10.1

    December 07, 2019
    • Allow enums as configuration keys #119
  • v0.10.0

    December 07, 2019
    • Remove lowercasing of keys (unless the key is coming from an environment variable).
    • Update nom to 5.x
  • v0.9.3

    May 09, 2019
    • Support deserializing to a struct with #[serde(default)] #106
  • v0.9.2

    January 03, 2019
    • Support reading enums from configuration. #85
    • Improvements to error path (attempting to propagate path). #89
    • Fix UB in monomorphic expansion. We weren't re-exporting dependent types. #91
  • v0.9.1

    September 26, 2018
    • Allow Environment variable collection to ignore empty values. #78 rust // Empty env variables will not be collected Environment::with_prefix("APP").ignore_empty(true)
  • v0.9.0

    July 02, 2018
    • Breaking Change: Environment does not declare a separator by default.

      // 0.8.0
      Environment::with_prefix("APP")
      
      // 0.9.0
      Environment::with_prefix("APP").separator("_")
      
    • Add support for INI. #72

    • Add support for newtype structs. #71

    • Fix bug with array set by path. #69

    • Update to nom 4. #63

  • v0.8.0

    January 26, 2018
    • Update lazy_static and yaml_rust
  • v0.7.1

    January 26, 2018
  • v0.7.0

    August 05, 2017
    • Fix conflict with serde_yaml. #39

    • Implement Source for Config.

    • Implement serde::de::Deserializer for Config. my_config.deserialize may now be called as either Deserialize::deserialize(my_config) or my_config.try_into().

    • Remove ConfigResult. The builder pattern requires either .try_into as the final step or the initial Config::new() to be bound to a slot. Errors must also be handled on each call instead of at the end of the chain.

      let mut c = Config::new();
      c
          .merge(File::with_name("Settings")).unwrap()
          .merge(Environment::with_prefix("APP")).unwrap();
      
      let c = Config::new()
          .merge(File::with_name("Settings")).unwrap()
          .merge(Environment::with_prefix("APP")).unwrap()
          // LLVM should be smart enough to remove the actual clone operation
          // as you are cloning a temporary that is dropped at the same time
          .clone();
      
      let mut s: Settings = Config::new()
          .merge(File::with_name("Settings")).unwrap()
          .merge(Environment::with_prefix("APP")).unwrap()
          .try_into();
      
  • v0.6.0

    June 23, 2017
    • Implement Source for Vec<T: Source> and Vec<Box<Source>>

      Config::new()
          .merge(vec![
              File::with_name("config/default"),
              File::with_name(&format!("config/{}", run_mode)),
          ])
      
    • Implement From<&Path> and From<PathBuf> for File

    • Remove namespace option for File

    • Add builder pattern to condense configuration

      Config::new()
          .merge(File::with_name("Settings"))
          .merge(Environment::with_prefix("APP"))
          .unwrap()
      
      • Parsing errors even for non required files – [@Anthony25] ( #33 )