kelseyhightower/envconfig
koanf
kelseyhightower/envconfig | koanf | |
---|---|---|
15 | 14 | |
5,237 | 3,250 | |
0.8% | 4.3% | |
0.0 | 8.4 | |
11 months ago | 12 days ago | |
Go | Go | |
MIT 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.
kelseyhightower/envconfig
-
newbie here looking for a framework
To configure the app I'd take a look at https://github.com/kelseyhightower/envconfig
-
REST API with Go, Chi, MySQL and sqlx
envconfig
-
What is the most common approach to configure a backend app?
- Having one way of configuring the app is excellent. You can either prefer environment variables, a file, or flags. You can do what Viper does by reading the file and unmarshalling it. The built-in flag package is enough for your flag-based config needs. If you want to prefer environment variables, I prefer https://github.com/kelseyhightower/envconfig
-
Building Robust Applications in Go: Integrating Envconfig, Gorm, and OpenSearch
To extract values from the system environment, I utilize envconfig, a Go package. Envconfig facilitates mapping system environment variables to a Go struct. These Go structs are exposed through a config package, enabling other parts of the application to access them.
- An Efficient Struct Configuration Pattern For Golang
- A new method of configuration load in Golang
-
Configuration management library for stage and production environments ?
You could prefix your env vars and use this package. https://github.com/kelseyhightower/envconfig
-
passwords, secrets, keys - best practice
kelseyhightower/envconfig
-
I'm looking for a good alternativ to Viper
Pretty much all of our services and pkgs use https://github.com/kelseyhightower/envconfig. It’s dead simple, gets out of your way, and is battle tested
-
Looking for a Go(Golang) buddy
https://github.com/kelseyhightower/envconfig (read config from environment variables, more succinct than viper)
koanf
- Simple, lightweight, extensible, configuration management library for Go
-
Puck
Seems quite useful. Will definitely check it out.
Minor nit: 10MB really isn’t that “small” for a CLI. I’d looked at your go.mod and seems like the most of dependency bloat might be coming from cobra or viper as it has in-tree plugins. You can check out an alternative like https://github.com/knadh/koanf which would decrease the binary size, I’m sure.
-
Nees help install knadh/koanf
LINK: https://github.com/knadh/koanf
-
App init and graceful watch lib recommendations ?
For configuration, I like Koanf.
-
Two ways to provide configuration: command-line, yaml file.
Of course. You should always use a good config package. caarlos0/env is okay but https://github.com/knadh/koanf is a better all around solution imo.
- Simplify Your Configurations in Go
-
Golang equivalent of Python’s click (CLT framework)
You can also use Viper with urfave/cli, or you can replace Viper with knadh/koanf, which I personally prefer.
-
Viper – Go Configuration with Fangs
Use viper with care. It has some dangerous fundamental flaws [1]. We got bitten hard, submitted a PR [2] and followed up for a year and a half to no avail, before I went ahead and reinvented the wheel and wrote koanf (plug), specifically to avoid viper's flaws.
Most importantly:
- Breaks JSON, YAML, TOML etc. language specs by forcibly lowercasing all keys internally. Dangerous because it can silently merge differently cased config keys into lowercase.
- Hard codes big unnecessary dependencies into the core, significantly bloating build sizes. No separation or abstraction.
[1] https://github.com/spf13/viper/pull/635
[2] https://github.com/knadh/koanf#alternative-to-viper
-
Extracting embedded files
It's not hard to a) look for a key in an environment variable b) accept a key as a parameter c) load a key from a file d) all of the above with something like koanf
- What are some good open source project to read when learning Go?
What are some alternatives?
viper - Go configuration with fangs
env - A simple, zero-dependencies library to parse environment variables into structs
config - JSON or YAML configuration wrapper with convenient access methods.
golobby-config - A lightweight yet powerful configuration manager for the Go programming language
konfig - Composable, observable and performant config handling for Go for the distributed processing era