Microsoftが公開したOSSツール「tgrep」は、trigram(3文字組)インデックスとクライアント/サーバー方式を組み合わせることで、大規模コードベースでの正規表現検索を高速化するツールです。サーバーを一度起動しておけば以降の検索は瞬時に行え、ファイル変更も自動検出してインデックスを更新します。並列検索とインデックス構築にはRustのrayonフレームワーク、正規表現解析にはregex-syntax、ファイル監視にはnotifyクレートが使われています。

ripgrepとの比較ベンチマークでは、gecko-dev(388Kファイル、macOS)でripgrepの33,402msに対しtgrepは643msで51.9倍、chromium(504Kファイル、Windows)で24,576ms対1,396msで17.6倍、linux(96Kファイル、macOS)で5,390ms対256msで21.0倍という高速化が示されています。Rust製・MITライセンスで公開されています。

出典が伝えている要点

  • tgrepは「Trigram-indexed grep with a client/server architecture」と説明されるツールである。
  • tgrepは大規模コードベースでの高速な正規表現検索を目的としている。
  • tgrepはクライアント/サーバーモデルを採用しており、サーバーを一度起動すればその後の検索は瞬時に実行できる。
  • サーバーはファイル変更を自動的に検出し、インデックスを更新する機能を持つ。
  • 並列検索とインデックス構築にRustのrayonフレームワークを用いている。
  • 正規表現解析にはregex-syntaxを用いている。
  • ファイル監視にはnotifyクレートを使用している。
  • バックグラウンドインデクサーは500ファイルのバッチで並列にインデックスを構築する。
  • インデックスは50Kファイルごと、または5分ごとにディスクへ定期的にフラッシュされる。
  • ライセンスはMITライセンスである。
  • インストール方法として、cargo install、Homebrew (brew install tgrep)、GitHub Releasesからの事前構築バイナリの3通りが提供されている。
  • ベンチマークでは、gecko-dev(388Kファイル、macOS)でripgrepの33,402msに対しtgrepは643msで51.9倍高速、chromium(504Kファイル、Windows)で24,576ms対1,396msで17.6倍高速、linux(96Kファイル、macOS)で5,390ms対256msで21.0倍高速という実測値が示されている。

原文より

Trigram-indexed grep with a client/server architecture for fast regex search in large codebases locally

出典: github.com

← 2026.09.07 の号を通しで読む