Skip to content
testcritic

Ruff

Extremely fast Python linter and formatter that replaces most of the toolchain.

Code QualityOpen sourceSelf-hostable
Visit Ruff

What it is

Ruff is a Rust-based Python linter implementing rules from Flake8, isort, pydocstyle, pyupgrade, Bandit and dozens of plugins, plus a formatter compatible with Black — typically 10 to 100 times faster than the tools it replaces. It has become the default in new Python projects with unusual speed.

Best for

Every Python project.

Where it is strong

  • Replaces Flake8, isort, Black, pyupgrade and more with a single fast binary.
  • Fast enough to run on every keystroke in the editor.
  • Straightforward migration from existing Flake8 configurations.

Where it falls short

  • Not every niche Flake8 plugin rule has been ported.
  • Type checking is a separate concern — you still need mypy or ty.
  • Rapid release cadence occasionally changes behaviour.

Pricing

Free and open source

Open source

Free tier: Everything, self-hosted

What drives the bill: Free and open source. You pay in engineering time and CI minutes.

Check current pricing on Astral’s site

Figures are indicative and were last reviewed August 2026. Vendors change pricing often; confirm before you commit.

Works with

VS Codepre-commitGitHub ActionsPyCharm

What people who use Ruff say

No reviews of Ruff yet. If you have used it in anger, yours would be the first.

Alternatives to Ruff

If Ruff is not the right fit, these solve the same problem differently.

Explore all alternatives