goConfig alternatives and similar packages
Based on the "Configuration" category.
Alternatively, view goConfig alternatives based on common mentions on social networks and blogs.
-
kelseyhightower/envconfig
Golang library for managing configuration data from environment variables -
env
A simple and zero-dependencies library to parse environment variables into structs -
koanf
Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper. -
cleanenv
✨Clean and minimalistic environment configuration reader for Golang -
konfig
Composable, observable and performant config handling for Go for the distributed processing era -
gookit/config
📝 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应用配置加载管理,支持多种格式,多文件加载,远程文件加载,支持数据合并,解析环境变量名 -
confita
Load configuration in cascade from multiple backends into a struct -
GoLobby/Config
A lightweight yet powerful configuration manager for the Go programming language -
config
JSON or YAML configuration wrapper with convenient access methods. -
envconfig
Small library to read your configuration from environment variables -
gcfg
read INI-style configuration files into Go structs; supports user-defined types and subsections -
joshbetz/config
🛠 A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. -
configuro
An opinionated configuration loading framework for Containerized and Cloud-Native applications. -
configuration
Library for setting values to structs' fields from env, flags, files or default tag -
hocon
go implementation of lightbend's HOCON configuration library https://github.com/lightbend/config -
uConfig
Lightweight, zero-dependency, and extendable configuration management library for Go -
configure
Configure is a Go package that gives you easy configuration of your project through redundancy -
go-up
go-up! A simple configuration library with recursive placeholders resolution and no magic. -
CONFLATE
Library providing routines to merge and validate JSON, YAML and/or TOML files -
go-ssm-config
Go utility for loading configuration parameters from AWS SSM (Parameter Store) -
Genv
Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables to be loaded from the .env file. -
subVars
Substitute environment variables from command line for template driven configuration files. -
swap
Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env).
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of goConfig or a related project?
Popular Comparisons
README
goconfig
goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
Install
go get github.com/gosidekick/goconfig
Example
package main
import "github.com/gosidekick/goconfig"
/*
step 1: Declare your configuration struct,
it may or may not contain substructures.
*/
type mongoDB struct {
Host string `cfgDefault:"example.com" cfgRequired:"true"`
Port int `cfgDefault:"999"`
}
type configTest struct {
Domain string
DebugMode bool `json:"db" cfg:"db" cfgDefault:"false"`
MongoDB mongoDB
IgnoreMe string `cfg:"-"`
}
func main() {
// step 2: Instantiate your structure.
config := configTest{}
// step 3: Pass the instance pointer to the parser
err := goconfig.Parse(&config)
if err != nil {
println(err)
return
}
/*
The parser populated your struct with the data
it took from environment variables and command
line and now you can use it.
*/
println("config.Domain......:", config.Domain)
println("config.DebugMode...:", config.DebugMode)
println("config.MongoDB.Host:", config.MongoDB.Host)
println("config.MongoDB.Port:", config.MongoDB.Port)
}
With the example above try environment variables like $DOMAIN or $MONGODB_HOST and run the example again to see what happens.
You can also try using parameters on the command line, try -h to see the help.
Contributing
- Fork the repo on GitHub
- Clone the project to your own machine
- Create a branch with your modifications
git checkout -b fantastic-feature
. - Then commit your changes
git commit -m 'Implementation of new fantastic feature'
- Make a push to your branch
git push origin fantastic-feature
. - Submit a Pull Request so that we can review your changes
*Note that all licence references and agreements mentioned in the goConfig README section above
are relevant to that project's source code only.