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; Ruff is already being rapidly adopted in 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
- 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) is founded in 2022 to build a Python-tool-in-Rust ecosystem, starting with Ruff as linter. Model: Open Source (all tools) + business model to be defined (hosted services, enterprise support).
In the Italian context
Adoption has started rapidly in Italian Python teams: startups, digital agencies, enterprise teams with slow CI pipelines. Migration from flake8 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.
