Open1
Go で自社製品向けの CLI を作成するためのメモ
前提
- Go で CLI を実現する
- パッケージミドルウェア向けに CLI で完結すること
- 閉じた環境でも利用できること
- 多機能であること
- 複数プラットフォーム対応
- Windows / Linux / macOS
- x86_64 / arm64
ライブラリ選定
-
itchyny/gojq: Pure Go implementation of jq
- jq の機能を組み込む
-
dop251/goja: ECMAScript/JavaScript engine in pure Go
- JavaScript エンジンを組み込む
- robertkrimen/otto: A JavaScript interpreter in Go (golang) は ES5/ES6 への対応を明確にしていないので採用しなかった
- k6 が採用している
-
pdfcpu/pdfcpu: A PDF processor written in Go.
- PDF 出力機能を組み込む
-
sqlc-dev/sqlc: Generate type-safe code from SQL
- ログを SQLite に入れる
-
mattn/go-sqlite3: sqlite3 driver for go using database/sql
- SQLite を操作
-
labstack/echo: High performance, minimalist Go web framework
- Webhook を処理
-
go-ini/ini: Package ini provides INI file read and write functionality in Go
- 設定ファイル
-
urfave/cli: A simple, fast, and fun package for building command line apps in Go
- CLI アプリ作成フレームワーク
-
guptarohit/asciigraph: Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
- ASCII グラフ
- 他にもイイのないか調査中
-
go-echarts/go-echarts: 🎨 The adorable charts library for Golang
- グラフライブラリ
- HTML 出力なので採用できるか微妙