Что такое Ruff?
Ruff — это чрезвычайно быстрый линтер и форматер кода Python, написанный на Rust компанией Astral — командой, создавшей uv. Благодаря более чем 800 встроенным правилам и нативным переработкам популярных плагинов один бинарный файл ruff заменяет Flake8, isort, Black, pyupgrade, autoflake и десятки плагинов, работая при этом в 10–100 раз быстрее. Он стал линтером по умолчанию в современной экосистеме Python и используется такими проектами, как FastAPI, Pandas и Hugging Face.
apt upgrade всегда держит вас на последней версии.
⚡ Ключевые возможности Ruff
🏎️ В 10–100 раз быстрее
Линтит большие кодовые базы за миллисекунды там, где старым инструментам нужны минуты — достаточно быстро, чтобы запускать при каждом сохранении и в каждом CI-пайплайне.
🧰 Один инструмент, 800+ правил
Заново реализует Flake8, isort, pyupgrade, pydocstyle, eradicate и другие — один конфиг в pyproject.toml заменяет целый стек плагинов.
🖤 Готовая замена форматера
ruff format — форматер, совместимый с Black: тот же стиль, на порядки быстрее, и не нужно устанавливать отдельный инструмент.
🔧 Автоисправления
Сотни правил имеют автоматические исправления: неиспользуемые импорты, обновлённый синтаксис, отсортированные импорты — ruff check --fix, и готово.
🐍 Учёт версий Python
Поддерживает любой Python начиная с 3.7 с поведением правил в зависимости от версии, иерархической конфигурацией, удобной для монорепозиториев, и переопределениями на уровне отдельных файлов.
🔌 Интеграции с редакторами
Встроенный языковой сервер (ruff server) обеспечивает первоклассные интеграции с VS Code, Zed, Neovim и Helix из того же бинарного файла.
🏆 Зачем устанавливать через apt?
- Для всей системы, без pip: один бинарный файл для каждого проекта, venv, CI-задачи и пользователя — не нужно синхронизировать установки в каждом проекте
- Идеально для образов Docker/CI: добавьте репозиторий в базовые образы — и каждый пайплайн автоматически получает актуальный ruff
- Без тулчейна: ни Rust, ни cargo, ни pip — apt-репозиторий с GPG-подписью и готовыми бинарными файлами для 8 архитектур
- Автоматические обновления: ruff выпускается часто;
apt upgradeне отстаёт, и ваши правила никогда не устаревают - В паре с uv: пакетный менеджер Astral тоже доступен здесь — полный современный тулчейн Python из одного репозитория
📦 Установка из deb.griffo.io
Шаг 1: Добавить репозиторий
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 Есть вечно бесплатное зеркало. deb-free.griffo.io раздаёт пакеты бесплатно навсегда — без аккаунта, без подписки, не более 2 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh и Zed; Ruff среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.
🧩 О варианте extrepo. extrepo — штатный инструмент Debian для внешних репозиториев: он создаёт файл sources и устанавливает ключ подписи, предварительно сверив его с подписанными метаданными. Этот репозиторий зарегистрирован в нём как griffo, а бесплатное навсегда зеркало — как griffo-free, поэтому в Debian (bookworm, trixie, forky и sid) команды выше и есть вся настройка.
extrepo настраивает только файл sources и ключ — учётные данные подписки по-прежнему прописываются в /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu не поддерживается, так как extrepo публикует метаданные только для выпусков Debian: там используйте команды с sudo или от root.
Шаг 2: Установить Ruff
sudo apt install -y ruffapt install -y ruff🚀 Первый запуск
Проверьте линтером и отформатируйте свой проект:
ruff check . # lint
ruff check --fix . # lint and auto-fix
ruff format . # format (Black-compatible)📦 Репозиторий сборки пакетов
Пакеты Debian собираются и поддерживаются автоматически в этом репозитории GitHub:
- 📂 ruff-debian - сборки последних релизов
🔗 Связанные пакеты
Также доступны из deb.griffo.io:
- uv - чрезвычайно быстрый пакетный менеджер Python от Astral — идеальный напарник ruff
- Zed - быстрый редактор с первоклассной интеграцией ruff
- just - командный раннер для ваших процессов lint/format/test
💝 Поддержите этот проект
Если этот репозиторий экономит ваше время и усилия, пожалуйста, поддержите его!
