
紹介
「MatchBox」はコマンドを毎回調べてる人向けのコマンド登録用のRust製CLIツール。
主な機能として、
npm run devやpip installなどのコマンドを保存しておき、カテゴリ別に登録できる。- コマンドを対話式に選択し、クリップボードに保管できる。
を行うことができる。
導入方法や使い方が書かれたページはこちら:
👉 https://github.com/yukisakura001/mb
開発した背景
「MatchBox」を開発した背景として、Rustを使ってなにか開発してみたかったというのがあった。
もともとRustに興味があり、公式ドキュメントを流し読みしていたが、手を動かさないと理解できる気がしなかったため、前々から構想はあったコマンド保存ツールの開発に使用してみることにした。
気をつけたこと・工夫
自分の作るツールのコンセプトは、「めんどくさがりでも使用できる」ことを念頭に入れて作っている。(実際できているかどうかは別だが)
このツールもそれを意識しており、以下の工夫をしている:
- コマンド名を短くし入力が簡易(例:
MatchBox → mb、Category → cat) - GUIを使用せずCLIで完結するため煩わしくない
- 極力引数は減らし、対話式で選択肢を指定できるように
- シングルバイナリ + 1設定ファイルで移動もしやすい
これらの工夫によって、面倒くさがりでも使えるような便利なツールを目指している。
今後追加したい機能
前提として、しばらく機能を追加する予定はない。
ただし今後自分が使用する中で欲しくなった機能は、積極的に実装していこうと考えている。
今後追加されるかもしれない(つまり自分がほしい)機能は以下である:
mb updateで自動更新を行えるようにする- コマンドの取得をコピーではなく、直接実行まで行うオプションの追加
npm・pip等の主要なツールのコマンドをインストールできるようにする機能(例:mb install pip等)- 各OS向けにビルドして公開する
作った感想
簡単なツールを作っただけなので、Rustらしい強みや弱みを大して感じていない。
所有権やライフタイムなどは他の言語にないクセがあるものの、小規模ツール程度ならそこまで困らず、特に苦労した点もなかった。
Cargoは非常に便利なのと、コンパイラが厳格ゆえにAIと相性が良いため将来性を感じる一方、パパっと個人開発するならGoの方が向いていそうな気がしている。
このツールは自分で長いこと使い続ける気がしているので、こまめにメンテナンスしていきたい。


コメント