-
urfave/cli
A declarative, simple, fast, and fun package for building command line tools in Go (by urfave)
Personally I used https://github.com/urfave/cli for CLI a lot but ended up migrating few project to cobra just because while way to use it was pretty aisine and annoying it ended up better at parsing said CLI (urfave/cli insist on positional arguments which don't work well for some cases)
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
-
-
For all my commandline parsing and config loading needs I use kong. In contrast to Viper and Cobra it has almost no dependencies (while viper and cobra pull in half a jungle).
-
Have a look at https://github.com/peterbourgon/ff
-
check this package: https://github.com/ilyakaznacheev/cleanenv
-
conf
Package conf provides support for using environmental variables and command line arguments for configuration. (by ardanlabs)
-
Stream
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
-
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
-
Shameless self-promotion: I encountered the same pain points and put together a small library to tie together multiple configuration sources. As I still really like cobra it is intended to be used with pflags.
-
Self promo: it won’t help with the config file side of things but should elegantly cover the flags and environment variables: https://github.com/cavaliergopher/xflags.
-
For config I ended up making wrapper for YAML parser that did the "pick a config from list list" and "generate default config" features. But my config needs are not that big