Dev tooling Python lento
La pila di dev tooling Python tradizionale include: flake8 (lint), pylint (lint più profondo), black (format), isort (import sorting), pyupgrade (modernization). Ognuno è uno strumento separato Python, lento su large codebase (minuti su progetti grandi).
Ruff, creato da Charlie Marsh e l’azienda Astral (fondata 2022) a New York, riscrive queste funzionalità in Rust. Risultato: un solo binario che fa tutto, 10-100x più veloce. Licenza MIT.
La prima release pubblica è agosto 2022; Ruff è già in rapida adozione in progetti Python mainstream (Pandas, FastAPI, Django, Airflow, Hugging Face, Pydantic stessa).
Cosa fa Ruff
- 800+ rules di linting, compatibili con flake8 + plugins (pycodestyle, pyflakes, McCabe, isort, pydocstyle, pylint subset, pyupgrade, bandit, …)
- Auto-fix per ~50% delle rule
- Ordinamento import (sostituisce isort)
- Performance: 10-100x vs. pila tradizionale
Uso
ruff check src/
ruff format src/
pyproject.toml config:
[tool.ruff]
line-length = 100
select = ["E", "F", "I", "N", "UP", "B"]
ignore = ["E501"]
Astral e la strategia
Astral (la company) nasce nel 2022 per costruire un ecosistema di tool Python in Rust, a partire da Ruff come linter. Modello: Open Source (tutti i tool) + business model da definire (hosted services, enterprise support).
Nel contesto italiano
L’adozione è iniziata rapidamente nei team Python italiani: startup, agenzie digitali, team enterprise con CI pipeline lente. Migrazione da flake8 spesso conclusa in un pomeriggio.
Riferimenti: Ruff (agosto 2022). Charlie Marsh, Astral. Licenza MIT. Linguaggio implementazione: Rust. Drop-in replacement di flake8 + black + isort + pyupgrade + altri. Pyproject.toml config.
