A simple, full-featured Go library for application configuration management supporting JSON, YAML, TOML, INI, ENV, Flags, and more.
Gookit/config is a Go library for managing application configuration. It allows developers to load settings from various file formats (JSON, YAML, TOML, etc.), environment variables, and command-line flags into a unified structure. It solves the problem of handling configuration complexity in Go apps by providing consistent APIs for access, merging, and binding to structs.
Go developers building applications that require flexible configuration management, especially those needing support for multiple config formats, environment-specific settings, or dynamic configuration reloading.
Developers choose Gookit/config for its extensive format support, ease of use with struct binding, and features like environment variable parsing, event hooks, and remote file loading—all without external dependencies beyond Go's standard library.
📝 Go configuration manage(load,get,set,export). support JSON, YAML, TOML, Properties, INI, HCL, ENV and Flags. Multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports JSON, YAML, TOML, INI, ENV, and more with extensible custom drivers, allowing seamless loading from diverse sources without locking into one format.
Easily binds configuration to Go structs using tags for defaults and environment variable interpolation, simplifying data access and reducing boilerplate code.
Provides event hooks for changes like set, load, and reload, enabling live updates and integration with file watching via external libraries like fsnotify.
Can load from files, environment variables, CLI flags, and remote URLs with automatic merging, making it versatile for complex deployment scenarios.
Relies on third-party libraries for formats like HCL and YAML, which can bloat dependencies and introduce version compatibility issues.
The extensive API and numerous options may be overkill for basic configuration needs, adding unnecessary complexity compared to lighter alternatives.
Lacks built-in support for modern cloud config services, requiring custom code to integrate with platforms like Kubernetes ConfigMaps or Azure App Configuration.