OSS探訪

PythonのlintとformatをRust実装の単一CLIへまとめ、900超のruleと自動修正を高速に実行する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
49,889
主要言語
Rust
ライセンス
MIT
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

Ruffは、Python向けlinterとcode formatterをRustで実装したCLIです。900を超えるlint rule、自動修正、cache、pyproject.toml設定を一つのtoolへまとめ、local開発とCIのcode quality checkを高速化できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

lintとformatを一つのCLIで実行する

ruff checkでlint、ruff formatでformatを実行でき、Flake8系plugin、isort、pyupgrade、Blackなどが担ってきた複数の役割を一つのinterfaceへ集約できます。

出典:[1]

900超のruleと自動修正を利用する

多数のruleをRustでfirst-party実装し、未使用importなど一部の問題は--fixで自動修正できます。default rule setだけでも一般的なerrorやcode smellを検出できます。

出典:[1]

project設定とeditor・pre-commit・CIを同じruleへ揃える

pyproject.toml、ruff.toml、.ruff.tomlで設定でき、pre-commit、VS Codeなどのeditor、GitHub Actionsにも組み込めます。

出典:[1]

向いている用途

Python projectのlint・format toolchainを整理し、feedbackを高速化したい場合に向く

local保存時のcheckから大規模repositoryのCIまで、同じ設定で短いfeedback loopを作りたいteamに向きます。

出典:[1]

導入前の確認

既存toolから移行するときはruleとformat差分を段階的に確認する

Ruffは多くの既存toolとの互換性を目指しますが、完全に同じ設定・判定とは限りません。まずdefault ruleや限定したselectから始め、既存CIとの差分を確認して移行します。

出典:[1]

自動修正とformatはsourceを変更するためCIではcheck-onlyも使い分ける

ruff check --fixやruff formatはfileを書き換えます。CIではruff checkとruff format --checkを使い、修正を開発者側で適用する運用と分けることができます。

出典:[1]

preview modeは未安定機能なので固定versionで評価する

preview = trueまたは--previewは最新ruleやformatter変更などのunstable featureを有効化します。2026年10月3日時点の最新安定版は0.16.10で、CIではversionを固定し、preview採用時は変更内容を追跡します。

出典:[1][2]

参考にした公式資料

  1. [1]Ruff 0.16.10 README(2026-10-03)
  2. [2]Ruff 0.16.10 release(2026-10-03)
  3. [3]Ruff 0.16.10 MIT license(2026-10-03)
編集部からの補足

Flake8系plugin、isort、Blackなど複数toolを整理したいPython projectで導入効果が大きいOSSです。既存設定を一気に置換するより、default ruleから始めて差分をCIで確認しながら段階的にruleを広げる方が安全です。

3ステップで試す

  1. 1

    Ruff 0.16.10を仮想環境へ導入する

    既存Python環境を汚さず、stable releaseを固定してRuff CLIを導入します。

    python3 -m venv .venv && . .venv/bin/activate && python -m pip install ruff==0.16.10
  2. 2

    projectをlintする

    default rule setで現在のdirectory以下を検査します。このcommandだけではsourceを自動修正しません。

    ruff check .
  3. 3

    format差分だけを確認する

    fileを書き換えずにformatter適用が必要か確認します。実際にformatする場合は--checkを外します。

    ruff format --check .
公式READMEで確認

成長

成長の推移 · 直近30日

49,889 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
429
Open PR
477

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • linter
  • pep8
  • python
  • python3
  • rust
  • rustpython
  • static-analysis
  • static-code-analysis
  • style-guide
  • styleguide
  • ruff
Stars
49,889
Forks
2,465
Watchers
139
Open Issues
1,713
Contributors
448
所有者種別
Organization
主要言語
Rust
ライセンス
MIT
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?