koanf
errors
Our great sponsors
koanf | errors | |
---|---|---|
12 | 30 | |
2,330 | 7,511 | |
- | - | |
7.1 | 0.2 | |
11 days ago | over 2 years ago | |
Go | Go | |
MIT License | BSD 2-clause "Simplified" 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.
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.
-
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.
- What are some good open source project to read when learning Go?
-
Coral, a friendly Cobra fork with nearly all its features, but only 4 dependencies
Came across this the other day https://github.com/knadh/koanf as an alternative to Viper.
-
What are your favorite packages to use?
https://github.com/knadh/koanf for config management. Readme contains why it's a good alternative to viper.
-
Is Viper necessary if my app is only using environment variables?
I use Koanf, much simpeler with the same options https://github.com/knadh/koanf
-
I've been using "caarlos0/env" for nearly 4 years? Anything better?
Personally I like: https://github.com/knadh/koanf
errors
-
Show HN: Error return traces for Go, inspired by Zig
Can you explain why we should this over https://github.com/pkg/errors?
- Error handling and serializing
-
What am I supposed to be doing with errors?
Also - there are some error handling utils that allow you to wrap errors before passing: https://github.com/pkg/errors
-
How to wrap the error best?
Prefer using errors.Wrap and errors.Wrapf from https://github.com/pkg/errors . It's frozen because they don't want to add features, waiting for a re-write of error handling in Go2.
- mdobak/go-xerrors: Yet another error handling library.
-
When ia a good time to panic?
And for "real programs" you can use https://github.com/pkg/errors (if you want stack traces)
-
My next client wants to redevelop a java Webapp with go
pkg/errors or stdlib errors - Error handling, but I wrote my own package for that tailored to my projects' needs. (FYI primalskill/errors but please don't use it as it's not production-ready yet and it will change a lot)
-
What are some good open source project to read when learning Go?
https://github.com/pkg/errors - errors with stack traces
-
Anyone using github.com/pkg/errors for stack traces?
The pkg.go.dev page lists 14k+ projects importing it, but the Github repository has been archived which would seem to discourage use. I'm also not a huge fan of the naming conflict with the stdlib errors package. The README notes it went into maintenance mode but it appears this, too, has passed.
-
go-faster/errors: clear go error wrapping with caller (xerrors fork with Wrap)
The pkg/errors and xerrrors are not maintainted
What are some alternatives?
viper - Go configuration with fangs
config - JSON or YAML configuration wrapper with convenient access methods.
konfig - Composable, observable and performant config handling for Go for the distributed processing era
zerolog - Zero Allocation JSON Logger
cleanenv - ✨Clean and minimalistic environment configuration reader for Golang
autoflags - Populate go command line app flags from config struct
go-multierror - A Go (golang) package for representing a list of errors as a single error.
logrus - Structured, pluggable logging for Go.
bitio - Optimized bit-level Reader and Writer for Go.
kelseyhightower/envconfig - Golang library for managing configuration data from environment variables
Testify - A toolkit with common assertions and mocks that plays nicely with the standard library
go-simple-config - open source for accessing and storing configuration