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; entro un anno Ruff è standard de facto in numerosi progetti Python mainstream (Pandas, FastAPI, Django, Airflow, Apache 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
  • Formatter (dalla 0.1, 2023) drop-in sostituto di black
  • 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) costruisce un ecosistema di tool Python in Rust:

  • Ruff (2022) — linter/formatter
  • UV (2024) — package manager/installer
  • Pyright-fork / ty (2024) — type checker (annunciato)

Modello: open source (tutti i tool) + business model da definire (hosted services, enterprise support).

Nel contesto italiano

Adoption rapida nei team Python italiani dal 2023: startup, agenzie digitali, team enterprise con CI pipeline lente. Migrazione da flake8/black 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