Ruff is an extremely fast Python linter and code formatter written in Rust, designed to replace multiple existing Python tooling solutions with a single unified interface. According to the README, it achieves 10-100x faster performance than existing linters like Flake8 and formatters like Black. The tool is installable via pip and supports Python 3.14, with drop-in compatibility for Flake8, isort, and Black. Ruff includes over 900 built-in rules with native re-implementations of popular Flake8 plugins such as flake8-bugbear, and it can be used to replace Flake8, Black, isort, pydocstyle, pyupgrade, autoflake, and other tools while executing tens or hundreds of times faster than any individual tool.
The repository is actively maintained by Astral, the company behind the uv package manager.
Ruff is used by major open-source projects including Apache Airflow, Apache Superset, FastAPI, Hugging Face, Pandas, and SciPy. The tool supports configuration through pyproject.toml, ruff.toml, or .ruff.toml files with hierarchical and cascading configuration for monorepo-friendly setups. It includes built-in caching to avoid re-analyzing unchanged files and provides automatic fix support for error correction, such as removing unused imports. First-party editor integrations are available for VS Code and other editors, and Ruff can be used as a pre-commit hook, GitHub Action, or invoked directly via uvx.
By default, Ruff enables Flake8's F rules along with a subset of E rules, omitting stylistic rules that overlap with formatters. A preview mode is available to opt into the latest lint rules, formatter style changes, and interface updates. The repository is classified across multiple domains including tooling, error detection, performance optimization, static analysis, formatting, code quality, type checking, and development efficiency.