12 factor configuration as a typesafe struct in as little as two function calls #golang
Manage your application config as a typesafe struct in as little as two function calls.
https://github.com/JeremyLoy/config
How It Works
Its just simple, pure stdlib.
A field's type determines what strconv function is called.
All string conversion rules are as defined in the strconv package
If chaining multiple data sources, data sets are merged. Later values override previous values. config.From("dev.config").FromEnv().To(&c)
Unset values remain as their native zero value
Nested structs/subconfigs are delimited with double underscore
e.g.
PARENT__CHILD
Env vars map to struct fields case insensitively
NOTE: Also true when using struct tags.
Why you should use this
Its the cloud-native way to manage config. See 12 Factor Apps
Simple:
only 2 lines to configure.
Composeable:
Merge local files and environment variables for effortless local development.
small:
only stdlib
< 180 LoC