205 Repos
Linters and code quality checkers to enforce coding standards.
Explore 205 awesome GitHub repositories matching part of an awesome list · Static Analysis Tools. Refine with filters or upvote what's useful.
Create React App is a command-line tool that generates a pre-configured project structure and build pipeline for React web applications. It serves as a frontend project scaffold, providing a set of predefined directory structures and dependencies to start development without manual compiler or bundler setup. The tool manages a complete frontend build pipeline that compiles, minifies, and optimizes code into production-ready bundles with hashed filenames. It also includes a configuration tool for progressive web app standards, implementing web app manifests and service workers for offline func
Standardized configuration for React project linting.
PHP-Parser is a tool that converts PHP source code into an abstract syntax tree for static analysis and programmatic manipulation. It functions as a parser, a code generator, and a static analysis framework. The project enables the programmatic construction of abstract syntax tree nodes through a fluent interface and provides the ability to transform these trees back into formatted source code. It includes a serializer that exports abstract syntax trees to JSON format and reconstructs them from strings. The toolset covers several capability areas, including namespace resolution, constant exp
PHP parser written in PHP.
This project is a static analysis framework and linting engine designed to inspect TypeScript codebases. It functions as a plugin suite that enables standard linting workflows to parse source code into abstract syntax trees, allowing for the automated enforcement of coding standards and the identification of potential bugs through a modular, rule-based visitor pattern. The engine distinguishes itself by integrating directly with the TypeScript compiler to perform type-aware analysis. By accessing compiler type information, it can identify complex errors and unsafe patterns that standard synta
TypeScript language extension for ESLint.
Pyright is a static type checker for Python designed to validate type hints and identify potential errors within large codebases. It functions as a command-line utility that integrates into local development environments and continuous integration pipelines to ensure code quality and consistency. The tool distinguishes itself through a high-performance analysis engine that utilizes incremental dependency graph analysis and persistent state caching to re-evaluate only the affected portions of a project. By implementing the Language Server Protocol, it provides real-time feedback, including err
Static type checker for Python.
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
Centralized repository for static analysis tool rankings and resources.
Reviewdog is an automated review bot and CI code review orchestrator that converts the output of static analysis tools into automated pull request comments. It functions as a linter output parser and static analysis commenter, transforming unstructured logs from compilers or linters into structured diagnostics. The project distinguishes itself by using pattern-based output parsing and a platform-agnostic plugin architecture to unify multi-language linting workflows. It employs diff-based result filtering to isolate issues introduced in a specific commit and provides the ability to post action
Posts linter comments to code hosting services.
SwiftFormat is a tool for the Swift language that functions as a code formatter, linter, and refactoring utility. It automatically applies consistent style rules and visual formatting to source files to ensure a uniform appearance across a project. The project differentiates itself by providing both a command-line interface for batch processing and an Xcode extension for integration directly into the development environment. It includes specialized capabilities for modernizing legacy API usage, simplifying language constructs, and inferring formatting options by analyzing an existing codebase
Formatting tool for Swift code.
xo is a zero-configuration linting tool for JavaScript and TypeScript. It functions as a wrapper for the ESLint engine, providing a set of strict default rules and static analysis to enforce professional coding standards without requiring manual configuration files. The tool distinguishes itself by providing a zero-config runtime that automatically determines parser settings and linting rules at execution time. It includes a code style formatter to standardize indentation and syntax across all project files. The project covers automated error correction and source code formatting to eliminat
Opinionated ESLint wrapper for JavaScript.
Bullet is an Active Record performance monitor and query profiler for Ruby on Rails applications. It serves as a diagnostic utility to identify inefficient database access patterns, flag redundant requests, and suggest eager loading strategies to improve response times. The tool specifically detects N+1 queries, missing counter caches, and unused eager loading. It monitors these patterns across both standard web requests and background jobs, identifying records that are fetched but never accessed to reduce memory usage and query overhead. Analysis is supported by a system that intercepts dat
Detects N+1 queries in Ruby applications.
go-tools is a collection of utilities for Go static analysis and memory layout optimization. It provides a toolset designed to analyze source code to detect bugs and dead code, alongside specialized tools for optimizing how structs are arranged in memory. The project includes a memory alignment visualizer to display physical memory layouts and padding, as well as a struct layout optimizer that reorders fields to minimize memory padding. Additionally, it provides a boilerplate generator to automate the creation of registration and test files required for developing custom Go analyzers. The to
Provides a suite of tools and libraries for Go code analysis.
rustfmt is a Rust code formatter that operates as a Cargo subcommand, applying consistent formatting to Rust source files according to official style guidelines. It parses source code into a syntax tree, applies formatting rules to tree nodes, and pretty-prints the result back to text, with support for TOML-driven configuration that allows per-project style customization. The formatter is edition-aware, automatically selecting formatting rules based on the Rust edition specified in the project, and supports a style edition override that decouples formatting rules from the Rust edition used fo
Formats Rust code to style guidelines.
Larastan is a static analysis extension and type inference engine for PHP designed to detect bugs and type errors in Laravel applications. It extends PHPStan to resolve framework-specific patterns and magic methods, providing a rule-based scanning engine to audit code quality without executing the application. The tool specializes in Eloquent analysis, verifying that model properties, casts, and relationships align with database schemas and migrations. It tracks types across Eloquent collections, custom builders, and model factories to ensure type safety during database operations and iterati
Static analysis wrapper for Laravel applications.
google-java-format ist ein Java-Code-Formatter und ein Tool zur Durchsetzung von Styleguides. Es formatiert Java-Quellcode so um, dass er einem standardisierten Styleguide entspricht, und sorgt so für ein konsistentes Layout und eine einheitliche Einrückung über ganze Projekte oder einzelne Dateien hinweg. Das Projekt fungiert als Linting-Tool in Build-Pipelines für Continuous-Integration-Workflows sowie als IDE-Formatierungs-Plugin, das die native Editor-Formatierung ersetzt. Es kann als Formatierungsbibliothek in Software zur Codegenerierung eingebettet werden, um sicherzustellen, dass maschinell erstellter Code für Menschen lesbar bleibt. Das Tool bietet Funktionen zur Anpassung von Einrückungen und Abständen im Quellcode, einschließlich der Möglichkeit, Formatierungen selektiv auf bestimmte Zeilenbereiche oder geänderte Diffs anzuwenden. Es unterstützt die Integration in Entwicklungsumgebungen wie Eclipse, um Layout-Anpassungen während des Codierens zu automatisieren.
Reformats Java code to Google Style.
Phan ist ein statischer Analysator und Typ-Prüfer für PHP, der Fehler und Typ-Inkompatibilitäten identifiziert, ohne den Code auszuführen. Er dient als Qualitäts-Gate für Continuous-Integration-Pipelines und als Tool zur Überprüfung der Typsicherheit, wobei er insbesondere Union-Types, Generics und Array-Shapes prüft. Das Projekt zeichnet sich durch die Verwendung eines Hintergrund-Daemons und die Implementierung des Language Server Protocol aus, die Echtzeit-Diagnosen und Navigation innerhalb von Editoren ermöglichen. Es verfügt zudem über ein Baseline-basiertes Unterdrückungssystem, das es Entwicklern erlaubt, bestehende Fehler in einer Snapshot-Datei zu erfassen, um sich ausschließlich auf neue Regressionen zu konzentrieren. Die Analyse-Engine deckt ein breites Spektrum an Funktionen ab, einschließlich der Erkennung von Dead Code, der Validierung der Sprachkompatibilität über verschiedene PHP-Versionen hinweg sowie der Inferenz von Variablen- und Template-Typen. Sie unterstützt erweiterbare Analysen durch ein Plugin-System und bietet automatisierte Code-Korrekturen für eine Teilmenge der erkannten Probleme. Benutzer können den Prozess durch die Generierung einer Konfigurationsdatei mit wählbaren Strengegraden (Strictness Levels) bootstrappen, um ihre Codebasis schrittweise zu validieren.
Modern static analyzer for PHP.
PhpInsights ist ein Tool zur statischen Analyse und ein Code-Qualitätsanalysator für PHP. Es bewertet Quellcode, um Fehler, Stilverstöße und technische Schulden zu identifizieren, ohne die Anwendung auszuführen. Das Tool fungiert als Dienstprogramm für Komplexitätsmetriken und berechnet die architektonische und zyklomatische Komplexität, um übermäßig komplizierte Logik zu lokalisieren. Es misst die allgemeine Softwaregesundheit und Wartbarkeit durch den Vergleich von Code mit Industriestandards. Das System verwaltet technische Schulden durch regelbasierte Validierung und metrikgesteuerte Bewertung. Es verwendet eine statische Analyse-Engine, um Quellcode zu parsen, und liefert die Ergebnisse über konsolenbasierte Berichterstattung und eine projektspezifische Konfigurationsdatei.
Instant PHP quality and style checks.
Credo ist ein Tool zur statischen Analyse und ein Linter für Elixir. Es fungiert als Code-Qualitätsanalysator, der den Quellcode scannt, um stilistische Inkonsistenzen, häufige Fehler und potenzielle Sicherheitslücken zu identifizieren. Das Tool bietet ein anpassbares Framework zum Definieren und Testen spezialisierter Regeln, um projektspezifische Codierungsstandards durchzusetzen. Es identifiziert komplexe Codefragmente und Duplikate, um Möglichkeiten für Refactoring und Vereinfachung aufzuzeigen. Seine Funktionen decken automatisierte Code-Reviews, die Durchsetzung von Elixir-Codierungsstandards und Echtzeit-Feedback für Entwickler durch Editor-Integrationen ab.
Elixir static analysis tool focusing on consistency and teaching.
Shellharden is a shell script hardening tool and linter designed to improve the security and reliability of Bash scripts. It functions as an automated utility that rewrites scripts to follow industry standards for quoting and security practices. The project provides an optimizer and standardizer that replaces unsafe patterns and aliases with safer functional equivalents. It includes a syntax highlighter that uses visual markers and colorization to indicate vulnerabilities and areas where quoting corrections are required. The tool covers a broad range of capabilities including automated safet
Rewrites shell scripts for ShellCheck conformance.
Vulture ist ein statisches Analysetool und Linter, das entwickelt wurde, um ungenutzte Variablen, Funktionen und Klassen im Python-Quellcode zu finden. Es arbeitet als Dead-Code-Detektor und Finder für ungenutzten Code, der Quelldateien scannt, um nicht erreichbare Ausdrücke und Importe zu identifizieren, ohne den Code auszuführen. Das Tool verwendet ein konfidenzbasiertes heuristisches Bewertungssystem, um Erkennungen Wahrscheinlichkeitswerte zuzuweisen und so zwischen tatsächlich ungenutzten Symbolen und potenziellen False Positives zu unterscheiden. Es unterstützt zudem das Bereinigen von Dead-Code, indem erkannte ungenutzte Klassen und Funktionen nach Zeilenanzahl sortiert werden, um die Entfernung der größten Codeblöcke zu priorisieren. Die Analyseoberfläche umfasst Control-Flow-Reachability-Analyse, Symbol-Referenz-Tracking und die Möglichkeit, False Positives durch Namensmuster, Decorators oder Ignore-Kommentare zu unterdrücken. Vulture unterstützt zudem die Erstellung und Verwaltung von Whitelists über Mock-Module, um spezifische Elemente von nachfolgenden Scans auszuschließen. Projektweite Analyseregeln und Zielpfade können über Konfigurationsdateien verwaltet werden, einschließlich Unterstützung für das TOML-Format.
Finds unused Python classes, functions, and variables.
GrumPHP ist ein Git-Commit-Validator und Orchestrator für PHP-Codequalität. Es fungiert als Git-Hook-Manager, der die Installation und Ausführung von Skript-Triggern automatisiert, um Qualitätsstandards in PHP-Projekten durchzusetzen. Das Tool verhindert das Committen von nicht konformem Code, indem es während des Git-Workflows eine Suite von Validierungs- und Linting-Aufgaben ausführt. Es integriert automatisierte Qualitätsprüfungen direkt in die lokale Entwicklungsumgebung, um Projektstandards zu wahren. Das System verwaltet Pre-Commit-Test-Workflows durch die Ausführung von Qualitätstests und die Automatisierung von Git-Hooks. Es nutzt eine aufgabenbasierte Pipeline, um Validierungstools auszuführen und anhand von Exit-Codes zu bestimmen, ob ein Commit finalisiert werden darf.
Runs quality checks on every commit for PHP.
Reek ist ein statischer Code-Analysator für Ruby-Projekte, der Designfehler und Wartbarkeitsprobleme, sogenannte Code Smells, identifiziert. Er fungiert als Qualitätssicherungstool, das den Quellcode ohne Ausführung auf strukturelle Schwächen und technische Schulden untersucht. Der Analysator erkennt spezifische Muster wie zu große Klassen, zu lange Methoden und unklare Benennungen. Zudem identifiziert er komplexere Designprobleme, darunter Feature Envy, Data Clumps, simulierte Polymorphie und Control Coupling. Das Tool umfasst Funktionen für Issue-Baselining zur Verwaltung von Legacy-Code sowie konfigurationsbasiertes Filtern zum Ausschluss bestimmter Verzeichnisse. Es unterstützt automatisierte Qualitätsprüfungen in CI-Pipelines und liefert Analyseberichte in Formaten wie JSON, YAML, XML und HTML.
Code smell detector for Ruby.