Что это такое
Ruff — инструмент для проверки и форматирования Python-кода. Он написан на Rust и известен высокой скоростью: проект позиционирует себя как замену Flake8 с большим набором плагинов, isort, части pyupgrade, pydocstyle и форматтера в стиле Black.
Репозиторий появился в 2022 году и стал частью новой волны Python-инструментов Astral. Его популярность объясняется не только скоростью, но и объединением задач: один инструмент закрывает правила, автоисправления, сортировку импортов и форматирование.
Что внутри репозитория
Внутри — Rust-ядро анализатора, правила, форматтер, кэширование, поддержка `pyproject.toml`, интеграции с редакторами и документация. Ruff умеет работать в монорепозиториях, поддерживает каскадные настройки и дает быстрый цикл обратной связи в локальной разработке и CI.
Минимальная настройка
Пример показывает базовую конфигурацию: выбрать длину строки, версию Python и набор правил, а затем запускать проверку и форматирование из одной команды.
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "UP"]
Где полезен
Ruff полезен почти в любом Python-проекте: библиотеки, сервисы, data pipelines, notebooks, внутренние инструменты. Особенно заметен эффект в больших репозиториях и CI, где старые линтеры могут занимать существенное время.
Сильные стороны и ограничения
Ruff быстро закрывает много задач, но это не повод включать все правила подряд. При миграции с Flake8/Black/isort важно сравнить поведение, зафиксировать конфигурацию и прогнать автоисправления отдельным изменением.