Slow Python dev tooling
The traditional Python dev tooling stack includes: flake8 (lint), pylint (deeper lint), black (format), isort (import sorting), pyupgrade (modernisation). Each is a separate Python tool, slow on large codebases (minutes on big projects).
Ruff, created by Charlie Marsh and the company Astral (founded 2022) in New York, rewrites these in Rust. Result: a single binary doing it all, 10-100x faster. MIT licence.
The first public release is August 2022; within a year Ruff is the de facto standard in numerous mainstream Python projects (Pandas, FastAPI, Django, Airflow, Hugging Face, Pydantic itself).
What Ruff does
- 800+ linting rules, compatible with flake8 + plugins (pycodestyle, pyflakes, McCabe, isort, pydocstyle, pylint subset, pyupgrade, bandit, …)
- Auto-fix for ~50% of rules
- Formatter (from 0.1, 2023) drop-in black replacement
- Import sorting (replaces isort)
- Performance: 10-100x vs. traditional stack
Usage
ruff check src/
ruff format src/
pyproject.toml config:
[tool.ruff]
line-length = 100
select = ["E", "F", "I", "N", "UP", "B"]
ignore = ["E501"]
Astral and the strategy
Astral (the company) builds a Python-tool-in-Rust ecosystem:
- Ruff (2022) — linter/formatter
- UV (2024) — package manager/installer
- Pyright-fork / ty (2024) — type checker (announced)
Model: open source (all tools) + business model to be defined (hosted services, enterprise support).
In the Italian context
Rapid adoption in Italian Python teams from 2023: startups, digital agencies, enterprise teams with slow CI pipelines. Migration from flake8/black often completed in one afternoon.
References: Ruff (August 2022). Charlie Marsh, Astral. MIT licence. Implementation language: Rust. Drop-in replacement for flake8 + black + isort + pyupgrade + others. Pyproject.toml config.
