envconfig
Golang library to manage configuration data from environment variables
...Envconfig supports the use of struct tags to specify alternate, default, and required environment variables. Envconfig won't process a field with the "ignored" tag set to "true", even if a corresponding environment variable is set. Any field whose type (or pointer-to-type) implements envconfig.Decoder can control its own deserialization. Also, envconfig will use a Set(string) error method like from the flag.Value interface if implemented.