GoでCLIツール作るのに便利そうなパッケージを集めてみました
GoのCLIツールを作ろうと思った時に、いつも「あー、どのパッケージ使おう」ってなるので、あちこちのサイトをあさって便利そうなパッケージをまとめてみました。あくまでもCLIに関連するパッケージなので、Go全般に便利なパッケージではないのでご注意を。
まだまだ不足はあると思うので、随時追加、修正していきます。解説とかサンプルとかも追加していきたい。
コマンドラインオプションパーサー
cli.go
A small package for building command line apps in Go https://github.com/codegangsta/cli
Cobra
A Commander for modern Go CLI interactions https://github.com/spf13/cobra
gcli
The easy way to build Golang command-line application. https://github.com/tcnksm/gcli
Go CLI Library
A Go library for implementing command-line interfaces. https://github.com/mitchellh/cli
go-flags
go command line option parser https://github.com/jessevdk/go-flags
Kingpin
A Go (golang) command line and flag parser https://github.com/alecthomas/kingpin
mow.cli
A versatile library for building command line applications in Go https://github.com/jawher/mow.cli
goptions
A flexible parser for command line options https://github.com/voxelbrain/goptions
プログレスバー, 進捗表示
pb
Console progress bar for Golang https://github.com/cheggaaa/pb
ioprogress
Go (golang) package for progress bars around io.Reader/Writers. https://github.com/mitchellh/ioprogress
Spinner
Go (golang) package for providing a terminal spinner/progress indicator with options. https://github.com/briandowns/spinner
go-spin
Terminal spinner package for Golang https://github.com/tj/go-spin
MultiBar
Display multiple progress bars in Go (golang). https://github.com/sethgrid/multibar
文字や背景に色をつける
color
Colorize your terminal strings. https://github.com/aybabtme/color
Color
Color package for Go (golang) https://github.com/fatih/color
colorstring
Go (golang) library for colorizing strings for terminal output. https://github.com/mitchellh/colorstring
chalk
Intuitive package for prettifying terminal/console output. https://github.com/ttacon/chalk
go-colorable
Colorable writer for windows. https://github.com/mattn/go-colorable
ASCIIテーブル出力
go-clitable
Command line (ASCII) table for Golang https://github.com/crackcomm/go-clitable
ASCII Table Writer
ASCII table in golang https://github.com/olekukonko/tablewriter
入力系
Interact
A Golang utility belt for interacting with the user over a CLI https://github.com/deiwin/interact
Prompt
Cross platform prompting library https://github.com/Bowery/prompt
絵文字
Emoji
emoji terminal output for golang https://github.com/kyokomi/emoji
ターミナル判定
go-isatty
isatty for golang https://github.com/mattn/go-isatty
参考記事, ドキュメント
Go言語によるCLIツール開発とUNIX哲学について http://yuuki.hatenablog.com/entry/go-cli-unix
Go で CLI ツールを作る https://speakerdeck.com/dtan4/go-de-cli-turuwozuo-ru
高速にGo言語のCLIツールをつくるcli-initというツールをつくった http://deeeet.com/writing/2014/06/22/cli-init/
Goでコマンドラインツールを簡単に作成する方法 http://qiita.com/cotrpepe/items/113c938b37919d021339
Go言語 + cli-init でコマンドラインツールを作る http://dev.classmethod.jp/tool/cli-tool-by-golang-and-cli-init/