prylint: reimplementación en Rust de pylint con salida idéntica y hasta 2300 veces más rápida

Fuentes: prylint: a Rust reimplementation of pylint that is 15–84× faster with byte-identical outputT2

prylint es una reimplementación en Rust del comprobador estático pylint para Python que reproduce byte a byte la salida de la herramienta original —mensajes, líneas, columnas, orden, exit codes y pie de puntuación— y que, según sus pruebas, es entre 15 y 2300 veces más rápida, con una mediana de aproximadamente 85 veces por repositorio. La herramienta se distribuye con pip install prylint y requiere únicamente Python 3.9 o superior; no necesita tener instalados pylint ni astroid.

La fidelidad se ha validado mediante pruebas diferenciales sobre 52 bases de código en producción —unas 65.000 archivos Python— entre las que figuran django, numpy, pandas, sympy, home-assistant, sqlalchemy, twisted, scikit-learn y la propia suite funcional de pylint. En el banco de pruebas publicado, repositorios como black pasan de 26,7 horas con pylint a 41 segundos con prylint (2328×), home-assistant de 10,3 horas a 82 segundos (452×) y django de 1524 a 10,1 segundos (150×). El autor matiza que se trata de mediciones en un solo núcleo, ya que el motor de inferencia se mantiene secuencial para replicar exactamente la caché global de astroid.

El proyecto reutiliza el parser de ruff en Rust y reconstruye el árbol con la forma exacta de astroid; además, porta íntegramente su motor de inferencia, incluyendo particularidades como los generadores perezosos, el presupuesto de 100 nodos, las cachés LRU acotadas y la propagación de Uninferable. Los archivos que el parser de Rust rechaza se reenvían a CPython para reproducir fielmente los mensajes de error de sintaxis. El proyecto se publica bajo GPL-2.0-or-later, la misma licencia que pylint, y las excepciones conocidas —una clase oscura de SQLAlchemy, la familia no-member excluida deliberadamente y los casos no deterministas de pylint— están documentadas en el archivo LIMITATIONS.md.