Ruff: linter e formatter Python scritto in Rust

Ruff (2022) di Charlie Marsh e Astral: linter e formatter Python in Rust, 10-100x più veloce di flake8 + black + isort + pylint combinati. Sostituisce intera pila di dev tooling Python con un singolo binario.

Open SourceR&D RuffAstralCharlie MarshPythonRustLinterFormatterOpen Source

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.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi