48 repository-uri
Static analysis tools for linting, quality checking, and refactoring.
Explore 48 awesome GitHub repositories matching part of an awesome list · Code Analysis. Refine with filters or upvote what's useful.
Ruff is a high-performance static analysis and code formatting tool designed for Python. Built in Rust, it functions as a comprehensive engine that scans source code to detect programming errors, security vulnerabilities, and deviations from established coding standards. By parsing source code into a structured tree representation, it provides both automated linting and style enforcement across entire projects. The tool distinguishes itself through its speed and deep integration into the development lifecycle. It utilizes parallelized file processing to maximize throughput on large codebases
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Acest proiect este un formator de cod determinist și fără compromisuri pentru Python. Acesta funcționează prin parsarea codului sursă într-un arbore de sintaxă abstractă și regenerarea acestuia conform unui set rigid și opinat de reguli de stil. Prin automatizarea procesului de formatare, elimină dezbaterile manuale despre stil și overhead-ul de configurare, asigurându-se că codul rămâne consistent în întregul proiect, indiferent de input-ul original. Instrumentul se distinge prin accentul pus pe viteză și integrarea perfectă în fluxurile de lucru de dezvoltare. Utilizează caching-ul fișierelor bazat pe conținut și procesarea paralelă pentru a menține performanțe ridicate pe baze de cod mari, suportând în același timp hook-uri de control al versiunilor pentru a impune consistența stilului înainte ca codul să fie comis. Pentru a păstra istoricul proiectului, oferă mecanisme pentru a ignora anumite commit-uri în urmărirea „blame” a controlului versiunilor, asigurându-se că modificările automate de stil nu ascund autorul original. Dincolo de fișierele sursă standard, formatorul își extinde capabilitățile pentru a include notebook-uri Jupyter, stub-uri de tip și exemple de cod încorporate în documentație. Oferă o compatibilitate largă prin plugin-uri pentru principalele editoare de text și medii de dezvoltare integrate, precum și suport pentru protocolul de server de limbaj. Configurarea este gestionată prin fișiere la nivel de proiect care sunt descoperite automat în ierarhia directoarelor, permițând un comportament consistent în diverse medii de dezvoltare.
Listed in the “Code Analysis” section of the Awesome Python awesome list.
p3c is a Java static analysis tool and code quality linter designed to enforce professional coding guidelines and quality standards. It utilizes a set of custom rules based on the PMD engine to scan source code for style violations, performance bottlenecks, and potential bugs. The project is distributed as an IDE linting plugin that provides real-time feedback and warnings during development. It also includes functionality for pre-commit code quality gates, allowing modified files to be scanned and blocked if they violate defined rules before being committed to version control. The analysis
Alibaba coding guidelines for static analysis tools.
mypy is a static type checker for Python that analyzes source code to detect type errors and inconsistencies without executing the program. It functions as a static analysis tool and type inference engine, providing a gradual typing system that allows type hints to be added to a codebase incrementally while maintaining compatibility with dynamic typing. The project distinguishes itself through a combination of performance and precision features. It utilizes a daemon-based incremental checking system and multi-process parallel analysis to manage large codebases, supported by binary cache persi
Listed in the “Code Analysis” section of the Awesome Python awesome list.
This project is a high-performance static type checker and comprehensive development toolkit for Python. It functions as a core analysis engine that identifies type inconsistencies and enforces code correctness, while simultaneously providing a language server implementation to deliver real-time diagnostics and intelligence directly within development environments. The tool distinguishes itself through a parallelized execution engine that maximizes performance across large-scale codebases and monorepo structures. It supports gradual type adoption, allowing developers to integrate type checkin
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Infer is a static analysis toolset for Java, C, C++, and Objective-C designed to detect memory leaks, null dereferences, and resource bugs. It functions as a multi-language bug finder that identifies race conditions, deadlocks, and memory safety issues by translating source code into a common intermediate representation for analysis. The project distinguishes itself through an inter-procedural data flow analyzer that tracks movement between sources and sinks to detect tainted flows and generate data flow graphs. It also includes a framework for verifying temporal properties and reachability u
Static analysis tool for identifying potential bugs in mobile code.
This project is a comprehensive, curated directory of static analysis, linting, and security scanning utilities. It serves as a central resource for developers to discover, compare, and select tools based on specific programming languages, licensing models, and integration requirements. The directory distinguishes itself by providing deep metadata for each listed utility, including community-driven popularity rankings, maintenance status, and deployment methods. By aggregating these tools into a single searchable index, it enables teams to identify solutions for enforcing coding standards, ma
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
Static analysis of coding conventions and standards.
Bandit is a static analysis security testing tool and vulnerability detection scanner for Python source code. It functions as a security-focused linter and static analyzer that identifies common vulnerabilities and architectural flaws without executing the program. The tool utilizes an abstract syntax tree to analyze code patterns and identifies risky function calls or insecure configurations. It employs a plugin-based rule engine to decouple scanning logic from individual security checks and supports configuration-driven filtering to exclude specific files or ignore certain warnings. The sy
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Error Prone is a static code analyzer and Java compiler extension that identifies common programming mistakes during the build process. It functions as a compiler wrapper that flags potential errors as compile-time failures to prevent bugs from reaching execution. The tool integrates directly into the Java compilation workflow to provide compile-time validation. It allows for the definition of custom linting rules and analysis checks to enforce specific coding standards and detect prohibited API usage. The system utilizes abstract syntax tree analysis and type-aware pattern matching to inspe
Catches common programming mistakes at compile-time.
isort is a Python import sorter and code formatter that organizes import statements into alphabetical groups and sections. It functions as both a utility to automatically rearrange imports for a consistent layout and as a linting tool to verify if code follows specific ordering rules. The project provides configurable layout settings for indentation, wrapping modes, and section ordering to ensure compliance with project style guides and PEP 8. It allows for the exclusion of specific lines or files through inline comments and docstrings. The tool integrates into development workflows via IDE
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Pylint is a static code analyzer for Python that scans source code for errors, coding standard violations, code smells, and type-related issues without executing the program. It functions as a plugin-based linter framework, allowing users to extend its analysis capabilities with custom or third-party checks for project-specific rules and framework support. The tool also includes a duplicate code detector that identifies identical or near-identical code blocks across a project to help reduce redundancy. Beyond its core linting functionality, Pylint can generate UML class and package diagrams f
Listed in the “Code Analysis” section of the Awesome Python awesome list.
PMD este un analizor static de cod multi-limbaj utilizat pentru a identifica defecte de programare, variabile neutilizate și cod mort fără a executa programul. Acesta funcționează ca un detector de code smell și un enforcer al standardelor de codare, asigurându-se că codul sursă respectă convențiile de denumire specifice, cerințele structurale și ghidurile de stil ale proiectului. Proiectul dispune de un motor de reguli bazat pe XPath care permite utilizatorilor să definească tipare de analiză personalizate folosind interogări asupra unui arbore sintactic abstract. Include, de asemenea, un detector de copy-paste pentru a identifica blocuri de cod duplicate în mai multe fișiere și un designer vizual de reguli pentru crearea și testarea tiparelor de detectare personalizate. Suprafața de analiză acoperă detectarea bug-urilor, identificarea problemelor de mentenabilitate pentru a reduce datoria tehnică și verificarea implementărilor de testare. De asemenea, oferă capabilități pentru identificarea metodelor excesiv de complexe și a listelor de parametri prea lungi.
Source code analysis for finding bad coding practices.
Pyrefly is a static type checker for Python that operates as a language server, delivering real-time diagnostics, completions, and navigation in any editor supporting the Language Server Protocol. It also performs static tensor shape analysis, using symbolic dimension variables and arithmetic to verify shape consistency in deep learning models without runtime execution. Beyond core type checking, Pyrefly supports gradual adoption workflows: it can generate a baseline of known errors so only new issues are reported, migrate configuration from other type checkers, and automatically suppress exi
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Credo este un instrument de analiză statică și linter pentru Elixir. Funcționează ca un analizor de calitate a codului care scanează codul sursă pentru a identifica inconsistențe stilistice, greșeli comune și potențiale vulnerabilități de securitate. Instrumentul oferă un framework personalizabil pentru definirea și testarea unor reguli specializate pentru a impune standarde de codare specifice proiectului. Identifică fragmentele de cod complexe și duplicarea pentru a evidenția oportunitățile de refactorizare și simplificare. Capabilitățile sale acoperă revizuiri automate ale codului, impunerea standardelor de codare Elixir și feedback în timp real pentru dezvoltatori prin integrări în editor.
Static code analysis for consistency and style.
Typeshed este o colecție de definiții de tipuri statice și stub-uri pentru biblioteca standard Python și pachete terțe. Acesta servește ca resursă standardizată pentru analizoarele statice și mediile de dezvoltare integrate (IDE) pentru a valida corectitudinea codului și a oferi completare de cod bazată pe tipuri, fără a modifica sursa originală a bibliotecilor. Proiectul se concentrează pe crearea și întreținerea fișierelor externe de tip hint care separă adnotările de tip de implementarea la runtime. Utilizează un sistem pentru versionarea și maparea acestor stub-uri la versiuni specifice ale pachetelor de runtime pentru a menține compatibilitatea. Depozitul include o suită de validare pentru a asigura acuratețea acestor definiții. Aceasta acoperă validarea runtime-la-stub pentru a identifica neconcordanțele dintre tipurile declarate și cele reale, verificarea structurii directoarelor și testarea de regresie pentru a preveni reintroducerea bug-urilor de tip-checking cunoscute.
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Pytype este un instrument de analiză statică a codului și un motor de inferență a tipurilor pentru Python. Funcționează ca un analizor static de tipuri care detectează nepotrivirile de tip și verifică adnotările de tip fără a necesita hint-uri manuale complete, servind în același timp ca un generator de stub-uri de tip pentru producerea fișierelor de definiție standalone. Proiectul se distinge prin determinarea automată a tipurilor de variabile și funcții printr-o analiză a tiparelor de cod și a atribuirilor. Acest motor de inferență permite verificarea structurală a codului și generarea de stub-uri de tip care descriu interfețele modulelor și funcțiilor. Sistemul acoperă operațiuni largi de analiză statică, inclusiv validarea structurală a ierarhiilor de clase și a apelurilor de funcții, precum și urmărirea simbolurilor pentru a detecta erorile de namespace și încălcările de acces la atribute. De asemenea, oferă primitive de verificare a tipurilor pentru a impune adnotări și un sistem de tipuri capabil să modeleze structuri de date complexe folosind uniuni și opționale.
Listed in the “Code Analysis” section of the Awesome Python awesome list.
MonkeyType este un instrument de inferență a tipurilor la runtime și de analiză pentru Python. Acesta colectează tipurile reale ale argumentelor și valorilor returnate din apelurile de funcții în timpul execuției programului pentru a automatiza producerea de adnotări de tip static și fișiere stub compatibile. Sistemul convertește urmele de execuție capturate în hint-uri de tip static, care pot fi inserate direct în definițiile funcțiilor din codul sursă sau utilizate pentru a genera stub-uri de tip externe. Acest proces permite adăugarea siguranței tipurilor la codebase-urile existente prin analizarea tipurilor de date din lumea reală, mai degrabă decât prin auditare manuală. Capabilitățile instrumentului acoperă colectarea tipurilor la runtime, inferența dinamică a tipurilor și generarea definițiilor de tip static. Utilizează modificarea codului sursă și persistența urmelor de apel pentru a mapa tiparele observate la runtime către semnături statice.
Listed in the “Code Analysis” section of the Awesome Python awesome list.
Vulture este un instrument de analiză statică și linter conceput pentru a găsi variabile, funcții și clase neutilizate în codul sursă Python. Operează ca un detector de cod mort și un instrument de căutare a codului neutilizat care scanează fișierele sursă pentru a identifica expresiile și importurile inaccesibile fără a executa codul. Instrumentul folosește un sistem de scorare euristic bazat pe încredere pentru a atribui valori de probabilitate detecțiilor, ajutând la distingerea simbolurilor cu adevărat neutilizate de potențialele alarme false. Asistă în continuare la eliminarea logicii moarte prin sortarea claselor și funcțiilor neutilizate detectate după numărul de linii, pentru a prioritiza eliminarea celor mai mari blocuri de cod. Suprafața de analiză include analiza accesibilității fluxului de control, urmărirea referințelor simbolurilor și capacitatea de a suprima alarmele false prin tipare de nume, decoratori sau comentarii de ignorare. Vulture suportă, de asemenea, generarea și gestionarea listelor albe (whitelists) prin module mock pentru a exclude anumite elemente din scanările ulterioare. Regulile de analiză la nivel de proiect și căile țintă pot fi gestionate prin fișiere de configurare, inclusiv suport pentru formatul TOML.
Listed in the “Code Analysis” section of the Awesome Python awesome list.
code2flow este un mapper static al fluxului de program și un generator de grafuri de apelare a codului sursă. Acesta analizează codul sursă pentru a produce diagrame de flux vizuale care mapează relațiile de apelare a funcțiilor și căile de execuție. Proiectul include un vizualizator de urme de apelare asincronă care urmărește căile de execuție prin apeluri async și await pentru a mapa logica programelor asincrone. Oferă, de asemenea, o interfață programabilă de analiză a codului, permițând integrarea logicii de generare a grafului de apelare în alte aplicații software. Sistemul gestionează analiza statică a codului prin convertirea codului sursă în arbori de sintaxă abstractă pentru a identifica definițiile funcțiilor și punctele de apelare. Suportă filtrarea grafului de apelare pentru a restricționa domeniul vizualizărilor prin filtre de conținut și extragerea căilor limitate de adâncime, oferind în același timp stilizare vizuală pentru a distinge fluxurile logice.
Listed in the “Code Analysis” section of the Awesome Python awesome list.