コマンドを登録・呼び出しができる「MatchBox」を開発してみた

紹介

「MatchBox」はコマンドを毎回調べてる人向けのコマンド登録用のRust製CLIツール。
主な機能として、

  • npm run devpip install などのコマンドを保存しておき、カテゴリ別に登録できる。
  • コマンドを対話式に選択し、クリップボードに保管できる。

を行うことができる。

導入方法や使い方が書かれたページはこちら:
👉 https://github.com/yukisakura001/mb

開発した背景

「MatchBox」を開発した背景として、Rustを使ってなにか開発してみたかったというのがあった。

もともとRustに興味があり、公式ドキュメントを流し読みしていたが、手を動かさないと理解できる気がしなかったため、前々から構想はあったコマンド保存ツールの開発に使用してみることにした。

気をつけたこと・工夫

自分の作るツールのコンセプトは、「めんどくさがりでも使用できる」ことを念頭に入れて作っている。(実際できているかどうかは別だが)

このツールもそれを意識しており、以下の工夫をしている:

  • コマンド名を短くし入力が簡易(例:MatchBox → mbCategory → cat
  • GUIを使用せずCLIで完結するため煩わしくない
  • 極力引数は減らし、対話式で選択肢を指定できるように
  • シングルバイナリ + 1設定ファイルで移動もしやすい

これらの工夫によって、面倒くさがりでも使えるような便利なツールを目指している。

今後追加したい機能

前提として、しばらく機能を追加する予定はない。
ただし今後自分が使用する中で欲しくなった機能は、積極的に実装していこうと考えている。

今後追加されるかもしれない(つまり自分がほしい)機能は以下である:

  • mb update で自動更新を行えるようにする
  • コマンドの取得をコピーではなく、直接実行まで行うオプションの追加
  • npmpip 等の主要なツールのコマンドをインストールできるようにする機能(例:mb install pip 等)
  • 各OS向けにビルドして公開する

作った感想

簡単なツールを作っただけなので、Rustらしい強みや弱みを大して感じていない。
所有権やライフタイムなどは他の言語にないクセがあるものの、小規模ツール程度ならそこまで困らず、特に苦労した点もなかった。

Cargoは非常に便利なのと、コンパイラが厳格ゆえにAIと相性が良いため将来性を感じる一方、パパっと個人開発するならGoの方が向いていそうな気がしている。

このツールは自分で長いこと使い続ける気がしているので、こまめにメンテナンスしていきたい。

コメント

タイトルとURLをコピーしました