Pylint riscritto in Rust: prylint 85x piu veloce

Rilasciato prylint, reimplementazione Rust di pylint con output identico byte-per-byte e velocita da 15 a 85 volte superiori.

Pylint riscritto in Rust: prylint 85x piu veloce

prylint: una reimplementazione in Rust di pylint

Pylint è stato riscritto in Rust con il nome prylint. Il pacchetto, disponibile su PyPI dalla metà di giugno 2026, genera output identico byte per byte rispetto alla versione originale in Python. L’autore, Adam Raudonis, ha verificato la corrispondenza su 52 codebase di produzione per un totale di circa 65.000 file. La velocità media dichiarata è 85 volte superiore, con picchi superiori a 2000 volte su repository di grandi dimensioni.

Come funziona la compatibilità

A modern abstract 3D illustration showing two different glowing geometric structures seamlessly interlocking, representing perfect software compatibility and precise replication, dark background with neon blue and orange accents, modern tech style, no text or logos.

prylint non è un linter ispirato a pylint ma una porta diretta. Riproduce gli stessi messaggi, le stesse coordinate di riga e colonna, gli stessi codici di uscita e lo stesso piè di pagina con il punteggio. Per ottenere questo risultato mantiene una dipendenza minima da Python: lo usa solo per risolvere i percorsi dei moduli e per generare i messaggi di errore di sintassi identici a quelli di CPython. pylint e astroid non sono richiesti.

Il supporto per --rcfile, la scoperta di pyproject.toml, gli hook di inizializzazione e le direttive # pylint: inline è completo. Anche i casi in cui pylint presenta bug o si blocca vengono replicati esattamente.

Benchmark su codebase reali

I test sono stati eseguiti in modalità single-thread su macchine Apple M-series con pylint 4.0.5. Alcuni risultati:

  • black: da 26,7 ore a 41 secondi (2328×)
  • sentry: da 3,7 ore a 24 secondi (546×)
  • home-assistant (17.500 file): da 10,3 ore a 82 secondi (452×)
  • django: da 1524 secondi a 10,1 secondi (150×)
  • sqlalchemy: da 614 secondi a 7,1 secondi (87×)
  • pandas: da 1009 secondi a 14 secondi (72×)
Il range complessivo riportato va da 15× a oltre 2000× a seconda della dimensione e della complessità del progetto.

Quando conviene adottarlo

A sleek, futuristic visualization of an automated software pipeline, featuring glowing data streams passing rapidly through a series of high-tech checkpoints, symbolizing continuous integration and workflow efficiency, modern tech style, no text or logos.

prylint è utile nei flussi di lavoro che eseguono pylint su interi repository o in pipeline CI dove il tempo di esecuzione è un collo di bottiglia. Poiché l’output è identico, può sostituire pylint senza modificare configurazioni o script di post-elaborazione. Lo stato attuale è beta e richiede Python 3.9 o superiore sul PATH. Non gestisce ancora tutte le estensioni di pylint basate su plugin Python, quindi in alcuni ambienti misti resta necessario mantenere la versione originale.

FAQ

prylint sostituisce completamente pylint? Può sostituirlo per l’analisi statica standard. I plugin scritti in Python non sono supportati.

Serve installare pylint per usare prylint? No. prylint non richiede pylint né astroid.

I risultati sono identici anche sui file con errori di sintassi? Sì. prylint delega a Python la generazione dei messaggi di errore di sintassi per mantenere la corrispondenza esatta.

---

📖 Leggi anche

Hai bisogno di una consulenza?

Aiuto aziende e startup a sviluppare software, automatizzare processi e integrare AI. Parliamone.

Scrivimi
← Torna al blog