Our great sponsors
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.
6 projects | news.ycombinator.com | 18 Jul 2022
In terms of proliferating open source I think that statement is fair. spf13 is like brand name in open source.
I recall years back on GitHub, spf13 was like a named you were guaranteed to come across if you were sinking your teeth into go. I ended up using cast / viper: https://github.com/tony/vcsync/commit/a76681b. (Not that I'm anything special at golang)
What is the most common approach to configure a backend app?
4 projects | /r/golang | 5 Jun 2023
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?
11 projects | /r/golang | 1 Jun 2023
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?
10 projects | /r/golang | 17 Apr 2023
Cobra and Viper.
Library for Python similar to Go's Viper / 12 Factor
2 projects | /r/learnpython | 5 Apr 2023
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.
3 projects | /r/golang | 30 Mar 2023
Not only that, the "unmarshall to struct" method doesn't work at all for environment variables. https://github.com/spf13/viper/issues/188
Tools besides Go for a newbie
36 projects | /r/golang | 26 Mar 2023
IDE: use whatever make you productive. I personally use vscode. VCS: git, as golang communities use github heavily as base for many libraries. AFAIK Linter: use staticcheck for linting as it looks like mostly used linting tool in go, supported by many also. In Vscode it will be recommended once you install go plugin. Libraries/Framework: actually the standard libraries already included many things you need, decent enough for your day-to-day development cycles(e.g. `net/http`). But here are things for extra: - Struct fields validator: validator - Http server lib: chi router , httprouter , fasthttp (for non standard http implementations, but fast) - Web Framework: echo , gin , fiber , beego , etc - Http client lib: most already covered by stdlib(net/http), so you rarely need extra lib for this, but if you really need some are: resty - CLI: cobra - Config: godotenv , viper - DB Drivers: sqlx , postgre , sqlite , mysql - nosql: redis , mongodb , elasticsearch - ORM: gorm , entgo , sqlc(codegen) - JS Transpiler: gopherjs - GUI: fyne - grpc: grpc - logging: zerolog - test: testify , gomock , dockertest - and many others you can find here
Ultimate config for Go applications
3 projects | /r/golang | 24 Mar 2023
Is this sufficiently better than https://github.com/spf13/viper to warrant a switch?
[QUESTION] - How would I Read from multiple config files and environment variables?
2 projects | /r/golang | 15 Mar 2023
I'm using https://github.com/spf13/viper for configuration manager.2 projects | /r/golang | 15 Mar 2023
Ya, I think this issue explains one of the problems: https://github.com/spf13/viper/issues/761
Use TOML for `.env` Files?
7 projects | news.ycombinator.com | 10 Feb 2023
What are some alternatives?
godotenv - A Go port of Ruby's dotenv library (Loads environment variables from .env files)
envconfig - Small library to read your configuration from environment variables
koanf - Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
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.
cleanenv - ✨Clean and minimalistic environment configuration reader for Golang
goConfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
ini - Package ini provides INI file read and write functionality in Go
config - JSON or YAML configuration wrapper with convenient access methods.
go-toml - Go library for the TOML file format
env - A simple and zero-dependencies library to parse environment variables into structs.
validator - :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving