docs
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.
docs
-
Spf13 Google
Google search turned up https://www.mongodb.com/docs/manual/ as the MongoDB user manual.
According to Github, he even contributed to it https://github.com/mongodb/docs/graphs/contributors
There's a lot of evidence that his claims are at least plausible if not credible.
You created a burner account and anonymously keep spreading obscure attacks and lies without any evidence.
-
MongoDB Wire Protocol Specification License
The "You may not use or adapt this material for any commercial purpose, such as to create a commercial database or database-as-a-service offering" language suggests that they think the license covers more than just distributing the document, which I believe is an unusual interpretation of what a spec copyright allows the author to prevent.
Lawyer repellent (I hope): The quote comes from https://github.com/mongodb/docs/commit/50e48200cde7e2eaffdc6... , and anyone who receives this comment may copy it as they like.
viper
-
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?
-
How To Work With Multiple Go Files?
There are some Go packages that can make config easy such as Viper or what I'll do in some of my quick/simple projects is to have a Config struct that I load from a JSON file. You can .gitignore the JSON file, and have your program on first startup write a default JSON file with some sensible default settings (like randomized secret keys for your cookies or JWT tokens and await only your database and email credentials to be filled in).
-
In NodeJS I can encapsulate different start-up command for different mode (dev, production) with package.json. then after that it will get the .env file for the correct environment mode. How to archive the same things in golang ?
I'll also add that we set our configuration as structs, and use https://github.com/spf13/viper to load the structure from TOML.
-
a tool for quickly creating web and microservice code
Configuration file parsing viper
-
Getting cobra and viper to play along
I've created a bare-bones cli-project tthat uses cobra for cli-args and viper for configuration-management. Currently the application only has a single flag --user (or -u) and prints the passed argument to the console:
-
Libraries you use most of your projects?
https://github.com/joho/godotenv - load env file (or sometimes https://github.com/spf13/viper or load https://github.com/yosuke-furukawa/json5 directly)
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, 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.
ini - Package ini provides INI file read and write functionality in Go
goConfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
cleanenv - ✨Clean and minimalistic environment configuration reader for Golang
config - JSON or YAML configuration wrapper with convenient access methods.
go-toml - Go library for the TOML file format
validator - :100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
env - A simple and zero-dependencies library to parse environment variables into structs.