urfave/cli
zerolog
Our great sponsors
urfave/cli | zerolog | |
---|---|---|
26 | 39 | |
21,595 | 9,726 | |
1.0% | - | |
8.8 | 7.9 | |
16 days ago | 3 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.
urfave/cli
-
Best practices for distributing and updating a Go CLI on Linux?
Can you use a framework like urfavecli https://github.com/urfave/cli? This will auto-update every time it detects a new version from your CLI's GitHub repository
- Which packages do you recommend for building cli tools?
- K3S Binary, How does that work?
-
I created a library for parsing environment variables "envparse"
I use https://github.com/urfave/cli for local development over cli parameter inside docker over envs
-
Trying to Configure checkpoint for Fast syncing.Error in Command :-go run prysm/cmd/prysmctl/checkpointsync download --beacon-node-host=http://localhost:3500
....\Softwares\go\src\prysm\cmd\prysmctl\checkpointsync\cmd.go:3:8: cannot find package "github.com/urfave/cli/v2" in any of:
-
Snob - Dev Log (How it's done)
urfave/cli - A simple, fast, and fun package for building command line apps in Go;
-
Testing cli tool with logging
and probably something else will be added in the future. The final kind of launch command would like to see such djob [options] - command. Command is the command (with arguments to run). -- should separate the arguments of the utility from the arguments of the program to run. There are several excellent solutions for working with command-line arguments, such as spf13/cobra or urfave/cli. But they’re good for building an interface out of a lot of commands, and for one (as in my example) they’re redundant. So I used the flag library. I have defined the following structure with arguments:
-
Golang - Writing CLI App in Golang with Cobra
There are alternatives available for Cobra as well i.e. mitchellh/cli, go-flags, urfave/cli etc.
-
ERC-20 CLI Faucet
https://github.com/urfave/cli - A Golang package used to structure the CLI.
- Recommended framework/library for creating cli apps in go?
zerolog
-
Go 1.21 Released
Be aware that there is a performance impact compared to using zerolog directly [0] (my uneducated guess is it is likely due to pointer indirection).
[0]: https://github.com/rs/zerolog/issues/571#issuecomment-166202...
-
How to start a Go project in 2023
Things I can't live without in a new Go project in no particular order:
- https://github.com/golangci/golangci-lint - meta-linter
- https://goreleaser.com - automate release workflows
- https://magefile.org - build tool that can version your tools
- https://github.com/ory/dockertest/v3 - run containers for e2e testing
- https://github.com/ecordell/optgen - generate functional options
- https://golang.org/x/tools/cmd/stringer - generate String()
- https://mvdan.cc/gofumpt - stricter gofmt
- https://github.com/stretchr/testify - test assertion library
- https://github.com/rs/zerolog - logging
- https://github.com/spf13/cobra - CLI framework
FWIW, I just lifted all the tools we use for https://github.com/authzed/spicedb
We've also written some custom linters that might be useful for other folks: https://github.com/authzed/spicedb/tree/main/tools/analyzers
-
claim: qlog is faster, simpler and more efficient that slog; and does more practically useful stuff too
Can you compare it against zerolog?
-
Zerolog printing logs multiple times
Hello gophers, I am using https://github.com/uber-go/fx and https://github.com/rs/zerolog for logging.
-
Doubt around "Test only public functions" concept
Hovewer it is not bad to export such a function, if it is done purely for convenience. For example github.com/rs/zerolog works on a logger instances, which can be created manually, but they also provide a github.com/rs/zerolog/blob//log package, which provide you access to the global logger which is more convenient in most cases
-
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
-
What is the common log library which is industry standard that is used in server applications?
I use zerolog myself and have seen it being used in production several times. Also they have a list of who uses zerolog
-
Log: A minimal, colorful Go logging library 🪵
This would be so awesome if it was extending an awesome logger like https://github.com/rs/zerolog. Personally I love zerolog because of how it handles different data types including structs!
-
Best Logging Library for Golang
logrus README recommended using other libraries such as Zerolog, Zap, and Apex.
- If you had to choose a logging framework, which one would you use?
What are some alternatives?
cobra - A Commander for modern Go CLI interactions
zap - Blazing fast, structured, leveled logging in Go.
go-flags - go command line option parser
logrus - Structured, pluggable logging for Go.
kingpin - CONTRIBUTIONS ONLY: A Go (golang) command line and flag parser
lumberjack - lumberjack is a log rolling package for Go
mitchellh/cli - A Go library for implementing command-line interfaces.
glog - Leveled execution logs for Go
CLI Color - 🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库,支持16色,256色,RGB色彩渲染输出,使用类似于 Print/Sprintf,兼容并支持 Windows 环境的色彩渲染
Gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
elvish - Powerful scripting language & Versatile interactive shell
log - Structured logging package for Go.