爆速の検問所!Rustで再構築されたpre-commit「prek」の導入捜査報告
安心してください。腕利き(自称)のエンジニア探偵である私が、その事件を未然に防ぐ秘密兵器『prek』について、じっくり調査報告させていただきます!
現場(GitHub)の証言によると、prek は Rustで再設計された、より高速でモダンな pre-commit フレームワーク です。
通常の pre-commit も優秀な助手ですが、Python 製なので「起動がちょっと遅いな…」と感じることもありますよね。prek は Rust の力でその不満を解決し、「Git コミットの直前に、コードの健康診断を超高速で行う」のが得意なツールです。
爆速の検閲
コミットのたびに待たされるストレスが減ります。
シングルバイナリ
Python や Node.js の環境を汚さず、サクッと動きます。
既存資産の活用
本家 pre-commit のフック(設定)をそのまま使える設計になっています。
さあ、あなたのプロジェクトにこの「自動検問所」を設置しましょう。
Rust 製なので、cargo を使うのが一番早いです。
cargo install prek
プロジェクトのルートディレクトリで、設定ファイルを作成します。
prek init
これで .pre-commit-config.yaml という「ルールブック」が出来上がります。
Git に「コミットの瞬間に prek を呼べ!」と命令を仕込みます。
prek install
これで、git commit を叩くたびに、裏で prek が目を光らせるようになります。
具体的にどう使うのか、.pre-commit-config.yaml の中身を見てみましょう。例えば、「コードの末尾に余計な空白を残さない」「スペルミスを許さない」というルールです。
# ♂ 探偵のチェックリスト
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace # 行末の余計な空白を削除
- id: end-of-file-fixer # ファイル末尾を改行で終わらせる
- id: check-yaml # YAMLファイルの構文チェック
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.56.0
hooks:
- id: eslint # JavaScript/TypeScriptの構文チェック
新人
「よし!徹夜で書いたこの 5,000 行のコード、一気にコミットだ! git commit -m "修正" っと!」
探偵(prek)
「ちょっと待ったぁ!!(ガシッ)」
新人
「えっ、何!? 誰ですか!?」
探偵
「私は prek。君のコードに潜む『行末の空白』と『壊れたYAML』を検知した。このままコミットさせるわけにはいかないね…さあ、証拠物件(エラー箇所)を修正したまえ!」
新人
「うわっ、本当に間違ってる…! でも、チェックが一瞬すぎて、今何が起きたのか分かりませんでしたよ…。」
探偵
「フッ、それが Rust 製のスピードさ。さあ、綺麗になったコードで、もう一度。今度は通してあげるよ。」
「うっかり」を防ぐ
人間はミスをします。でも、ツールはしません。
チームの平和
CI(自動テスト)で落ちて「誰だこれ通したのは!」と犯人探しになる前に、自分の手元で解決できます。
Rust の恩恵
ツール自体がサクサク動くので、開発リズムが崩れません。
いかがでしたか? prek を導入すれば、あなたのリポジトリの平和は守られたも同然です。