Viper
A complete configuration solution for Go applications
Viper is a complete configuration solution for Go applications including 12-Factor apps. It is designed to work within an application, and can handle all types of configuration needs and formats. It supports setting defaults, reading from JSON, TOML, YAML, HCL, envfile and Java properties config files, live watching and re-reading of config files (optional), reading from environment variables, reading from remote config systems (etcd or Consul), and watching changes, reading from command line flags, reading from buffer, and setting explicit values. iper can be thought of as a registry for all of your applications configuration needs. When building a modern application, you don’t want to worry about configuration file formats; you want to focus on building awesome software. Viper is here to help with that.