Goのパッケージ
2024-05-03 21:30:53 goGo向けパッケージの一覧
ちょこちょこと作ってきたので、使いどころがありそうなものをピックアップして一覧にしてみました。
名前 | 場所 | 説明 |
---|---|---|
shandler | https://github.com/shu-go/shandler | slogでロギングする際にどのように出力側に伝えるかを制御するパッケージ。slog.Debugだけ別の出力先にするとか、複数の出力先に複製するとか、途中で出力レベル(slog.LevelDebugとかのこと)を変更するとか、色付けをするとか、ができるようになります。 |
findcfg | https://github.com/shu-go/findcfg | .yamlや.json, .configが置かれている場所を検索するパッケージ。複数の置き場所(候補)を許容しつつそれらを見に行く優先順位を付けているようなソフトウェアで使います。git-cxやfakerで使っています。 |
gotwant | https://github.com/shu-go/gotwant | お手軽に使えるテスト用のパッケージ。比較して、違ったらエラー出力する類のやつです。余分な機能は極力持たせない感じで作っています。多数の自作ソフトウェアで利用しています。最近では出力結果を色付けするコマンドを同梱するようになりました。 |
orderedmap | https://github.com/shu-go/orderedmap | 格納順を保持するタイプのマップです。genericsを使っていて、他の同種のものより少し性能・機能は勝っています。JSONとYAMLのMarshal/Unmarshalあり。git-cxやfakerで使っています。 |
gli | https://github.com/shu-go/gli | コマンドラインツール作成用のフレームワークです。構造体でコマンドを定義するタイプ。コマンド・オプションの定義やグルーコードを書く労力を減らしコマンドの処理内容に注力できるようにすることを目的としています。構造体に特定のメソッド(Run/Before/Initとか)を書いておけば main関数に少量のコードを書くだけで動きます。ほぼすべての自作ソフトウェアで使っています。 |
cliparser | https://github.com/shu-go/cliparser | gliで使っている、コマンドライン文字列を各要素に切り出すためのパッケージです。事前にヒント(値が続いてくるオプションかどうか、とか)を与えることで、コマンド・オプション・その他を判別させます。 |
ennet | https://github.com/shu-go/ennet | emmetの文字列をXMLに展開するパッケージです。emmetは ul>li*3 といった、ネストした要素の省略記法ですが、これをXMLファイルの操作ツールであるeksemelで要素追加をする際の記法に利用しています。 |
minredir | https://github.com/shu-go/minredir | OAuth2とかで使う、処理の過程で一旦特定のURLにアクセスが来る場合のためにHTTP/HTTPSサーバーを立ち上げておきたい場合に使います。uniqalやpmsyncで使っています。 |
nmfmt | https://github.com/shu-go/nmfmt | フォーマット文字列として $name や ${name} という表記ができるようになるパッケージです。 |
elapsed | https://github.com/shu-go/elapsed | 経過時間を計測するタイマー機能を提供するパッケージです。「elapsed: 123ms」とかそういうのを表示するためのものです。 |
rog | https://github.com/shu-go/rog | ロギングのパッケージです。slogとかあるしお役御免かなーと思ってはいるんですが、デバッグ用途でちょくちょく使っています。rog.EnableDebug() → rog.Debug() → rog.DisableDebug() で局所的にかつ深堀しつつデバッグするのが楽なので。 |
- 📄 slog-handler-guide2024-05-04 15:20:38slog-handler-guide の解説
- 📄 Goのパッケージ2024-05-03 21:30:53Go向けパッケージの一覧
- 📄 Vim LSP メモ2024-04-20 11:40:33忘れそうな内容をメモ
- 📄 GOEXPERIMENT + Build Constraints2024-02-13 22:32:04例えば GOEXPERIMENT=rangefunc の場合にビルドしたい/したくない場合の書き方
- 📄 reqdumper2024-01-02 10:53:41受け取った HTTP リクエストの内容を出力するだけの HTTP サーバー
- 📄 detour2024-01-02 10:29:11Windows のショートカット先を書き換える CLI アプリ
- 📄 Popcorn2023-10-21 22:00:18自分がよく使うコマンドを登録して呼び出すための Vim script
- 📄 deline2023-10-21 21:08:33Vim の statusline をカスタマイズしやすくするための Vim script. すぐに使
- 📄 k7jis2023-01-07 15:18:44Keychron K7 を JIS 配列のキーボードとして使っている場合に便利なキーマッピングを追加
- 📄 csv2xlsx2023-01-05 21:23:31CSVファイルをXLSXファイルに変換するツール