An open API service indexing awesome lists of open source software.

https://github.com/nobe4/go-cli-comparison

Comparison of the various way to build a CLI in Go
https://github.com/nobe4/go-cli-comparison

Last synced: over 1 year ago
JSON representation

Comparison of the various way to build a CLI in Go

Awesome Lists containing this project

README

          

# `go-cli-comparison`

Overly engineered comparison of the various way to build a CLI in Go

# The comparison tables

| library | tests | updated | stars |
| --- | --- | --- | --- |
|[akamensky/argparse](https://github.com/akamensky/argparse)|[✅]()[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|2 years ago|620|
|[alexflint/go-arg](https://github.com/alexflint/go-arg)|[✅]()[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|this year|2K|
|[flag](https://pkg.go.dev/flag)|[✅]()[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|||
|[hedzr/cmdr](https://github.com/hedzr/cmdr)|[✅]()[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|this week|137|
|[integrii/flaggy](https://github.com/integrii/flaggy)|[✅]()[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|1 year ago|860|
|[jessevdk/go-flags](https://github.com/jessevdk/go-flags)|[✅]()[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|this year|2K|
|[spf13/cobra](https://github.com/spf13/cobra)|[✅]()[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|this week|38K|

| test | libraries |
| --- | --- |
|[]()|[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-a ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L10-L13)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-b -b -b ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L16-L19)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-c a ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L22-L25)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-ca ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L26-L29)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-c=a ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L30-L33)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-d a ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L36-L39)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-d a -d a ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L40-L43)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|
|[-d a -d b ](https://github.com/nobe4/go-cli-comparison/blob/main/internal/spec/list.go#L44-L47)|[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/akamensky_argparse/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/alexflint_go-arg/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/flag/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/hedzr_cmdr/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/integrii_flaggy/main.go)[❌](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/jessevdk_go-flags/main.go)[✅](https://github.com/nobe4/go-cli-comparison/blob/main/libraries/spf13_cobra/main.go)|