【ラフ】

Ruff とは?

最終更新:
💡 Python界の韋駄天リンター、秒で整えて秒で返す
📌 このページのポイント
Ruff: 複数ツールを1つに統合 従来 Flake8(リント) Black(フォーマット) isort(インポート整理) pyupgrade(構文更新) Ruff リント フォーマット インポート整理 構文アップグレード Rust製 / 超高速 速度比較: Flake8 Ruff(10〜100倍速い)
Ruffによるツール統合のイメージ
ひよこ ひよこ
PythonにはFlake8とかBlackとかあるけど、またリンター増えたの?
ペンギン先生 ペンギン先生
Ruffはそれらを置き換えるために作られたツールだよ。Flake8のリントルール、Blackのフォーマット、isortのインポート整理を全部1つでやってくれるんだ
ひよこ ひよこ
速いって聞くけど、どのくらい違うの?
ペンギン先生 ペンギン先生
大規模プロジェクトだとFlake8が数十秒かかるところを、Ruffは1秒以下で終わることもあるよ。Rustで書かれているからJavaScriptPythonで動くツールとは桁違いの速さだね
ひよこ ひよこ
設定はどこに書くの?
ペンギン先生 ペンギン先生
pyproject.tomlの[tool.ruff]セクションに書けるよ。Pythonプロジェクトの設定が1ファイルにまとまるから管理しやすいんだ
ひよこ ひよこ
Flake8から乗り換えるのは大変?
ペンギン先生 ペンギン先生
Flake8のルールコード(たとえばE501とか)がそのまま使えるから、移行はかなり楽だよ。設定を少し書き換えるだけでほぼ同じチェックができるんだ
ひよこ ひよこ
最近のPython開発ではRuffが標準になりつつあるの?
ペンギン先生 ペンギン先生
uvと組み合わせて使う人がすごく増えているね。CPythonやFastAPIなど有名プロジェクトも採用していて、事実上の新標準になりつつあるよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Ruff」って出てきたら「Pythonのリントとフォーマットを爆速でやるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Ruff」 = ラフ
💬 犬の鳴き声(Ruff!)が由来で、ロゴも犬のモチーフなんだよ。速くて忠実な番犬みたいにコードを守ってくれるイメージだね
← 用語集にもどる