go-arg
viper
Our great sponsors
go-arg | viper | |
---|---|---|
6 | 73 | |
1,857 | 25,695 | |
- | - | |
4.4 | 8.8 | |
17 days ago | 6 days ago | |
Go | Go | |
BSD 2-clause "Simplified" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-arg
- Go-Arg: Struct-based argument parsing in Go
-
Build a GitHub Issues Reporter for failing Kubernetes Apps with Botkube Plugins
Under the hood, the pluginx.ParseCommand method uses go-arg.
-
Libraries for CLI and console applications
I’ve used multiple libraries over the last two years but less is more and go-arg feels like something that would be in the stdlib: https://github.com/alexflint/go-arg
- Libraries you use most of your projects?
-
Best practice for configuring secrets
I use this: https://github.com/alexflint/go-arg and setting defaults for my local environment. So no need to keep a .env file.
-
Recommended framework/library for creating cli apps in go?
I personally swear by the go-arg package, as i prefer its library-not-framework approach.
viper
-
Proxy Server in Go
The code uses Viper to load configuration files in the application.
- API completa em Golang - Parte 2
-
What 3rd-party libraries do you use often/all the time?
github.com/spf13/viper
- API completa em Golang - Parte 1
-
Building RESTful API with Hexagonal Architecture in Go
Instead of directly accessing environment variables with os.Getenv(), integrating a configuration handler like viper might make it maintainable.
-
What is the most common approach to configure a backend app?
I guess most people are using https://github.com/spf13/viper but I don't know if I should read everything from
-
Could I get a code review?
Use Viper for config file or environmental variable configuration -- it's going to save you a whole lot of time.
-
Which packages do you recommend for building cli tools?
Cobra and Viper.
-
Library for Python similar to Go's Viper / 12 Factor
I've mostly been using https://github.com/spf13/viper of late for my go projects. It supports the standard config formats, (json, yaml, toml etc) and lets you override any value with a ENV value.
-
Two ways to provide configuration: command-line, yaml file.
Not only that, the "unmarshall to struct" method doesn't work at all for environment variables. https://github.com/spf13/viper/issues/188
What are some alternatives?
argparse - Argparse for golang. Just because `flag` sucks
godotenv - A Go port of Ruby's dotenv library (Loads environment variables from .env files)
flag - Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand
envconfig - Small library to read your configuration from environment variables
cobra - A Commander for modern Go CLI interactions
koanf - Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
go-flags - go command line option parser
cleanenv - ✨Clean and minimalistic environment configuration reader for Golang
docopt.go - A command-line arguments parser that will make you smile.
kelseyhightower/envconfig - Golang library for managing configuration data from environment variables
mapstructure - Go library for decoding generic map values into native Go structures and vice versa.