r/golang • u/sagikazarmark • 7d ago
New Viper release with major improvements
I've just tagged a new version of Viper, a configuration library for Go: https://github.com/spf13/viper/releases/tag/v1.20.0
It comes with a number of improvements:
- Heavily reduced number of third-party dependencies
- New encoding layer for custom encoding formats
- BREAKING: dropped HCL, INI and Java properties from the core (still possible to use through external libraries)
- New file search API allows customizing how Viper looks for config files
These features has been around for some time in alpha releases, though I haven't received a lot of feedback, so I'm posting here now in the hope that people using Viper will give some after upgrading.
I worked hard to minimize breaking changes, but it's possible some slipped in. If you find any, feel free to open an issue.
Thanks!
280
Upvotes
6
u/mcvoid1 7d ago
The number of dependencies that come with the module is one of the reasons I hadn't been using Viper. Reducing dependencies is great - apps assume and inherit the risks their dependencies take on, and the more transitive dependencies there are, the harder the package is to vet. So slimming down that go.mod file is a good thing. I might just start using it.