vcsync
DISCONTINUED
viper
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.
vcsync
-
Spf13 Google
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)
viper
-
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
-
Tools besides Go for a newbie
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
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?
I'm using https://github.com/spf13/viper for configuration manager.
Ya, I think this issue explains one of the problems: https://github.com/spf13/viper/issues/761
- Use TOML for `.env` Files?
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