For static analysis patterns, the strongest matches are semgrep/semgrep (Semgrep is a comprehensive static analysis tool that provides), eslint/eslint (ESLint is a powerful static analysis engine that identifies) and pmd/pmd (PMD is a robust static analysis tool that excels). sonarsource/sonarqube and bearer/bearer round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Find the best static analysis tools for your codebase. We compare top-rated open-source options by activity and features to help you pick the right one.
Semgrep is a static analysis security testing tool designed to identify vulnerabilities and logic errors by matching source code against declarative patterns. It functions as an automated scanner that integrates into development workflows to detect insecure code patterns and enforce coding standards before deployment. The engine utilizes a language-agnostic intermediate representation and a modular parser architecture to normalize diverse programming languages into a unified format. This allows for consistent rule execution across different codebases, enabling users to perform custom structur
Semgrep is a comprehensive static analysis tool that provides vulnerability detection, a powerful custom rule engine, and multi-language support, making it a flagship solution for integrating security scanning into CI/CD pipelines.
This project is a static analysis engine designed to identify patterns, enforce coding standards, and automate code quality improvements in software projects. By parsing source code into structured abstract syntax trees, it enables deep programmatic inspection and the automated remediation of identified programming issues. The engine functions as a pluggable linting framework, allowing developers to extend its core capabilities through a modular architecture. Users can inject custom rules, parsers, and processors to support non-standard file formats or domain-specific logic. This extensibilit
ESLint is a powerful static analysis engine that identifies code quality issues and patterns through custom rules, though it focuses primarily on linting and style rather than the broader security-focused vulnerability detection typical of dedicated SAST tools.
PMD is a multi-language static code analyzer used to identify programming flaws, unused variables, and dead code without executing the program. It functions as a code smell detector and coding standard enforcer, ensuring source code adheres to specific naming conventions, structural requirements, and project style guides. The project features an XPath-based rule engine that allows users to define custom analysis patterns using queries against an abstract syntax tree. It also includes a copy-paste detector to identify duplicated code blocks across multiple files and a visual rule designer for
PMD is a robust static analysis tool that excels at identifying code quality issues, bugs, and structural flaws through its powerful XPath-based custom rule engine and multi-language support, making it a standard choice for enforcing coding standards and technical debt management.
SonarQube is a static code analysis platform used to scan source code and infrastructure scripts across multiple languages. It detects bugs, security vulnerabilities, and maintainability issues to ensure software meets reliability and security standards. The platform implements automated quality gates for continuous integration and delivery pipelines, verifying code against defined rules during merge or pull requests. It also integrates directly with code editors to provide real-time analysis results and quick-fix guidance during development. The system covers broad functional areas includin
SonarQube is a comprehensive static analysis platform that provides vulnerability detection, custom quality rules, and CI/CD integration across a wide range of programming languages, making it a flagship tool for this category.
Bearer is a static analysis security testing tool and privacy compliance auditor. It identifies security vulnerabilities, hard-coded secrets, and privacy risks in source code through static analysis and data flow tracing. The tool distinguishes itself by tracking the movement of sensitive data through code to identify leaks and by mapping personal and health-related information flows to generate evidence for privacy impact assessments. It also provides differential scanning for pull requests and uses fingerprint-based suppression to exclude known false positives from reports. The platform co
Bearer is a dedicated static application security testing tool that performs data flow analysis to identify vulnerabilities and privacy risks, offering the CI/CD integration and security-focused scanning required for this category.
This project is an AI-powered static analysis tool and automated vulnerability scanner designed to detect security flaws such as injection and authentication bypasses. It uses large language models to perform semantic reasoning across multiple programming languages, identifying vulnerabilities within code changes. The tool operates as a GitHub Action that integrates into continuous integration pipelines to analyze pull request diffs. It focuses on modified lines of code to target new risks and reports findings by posting automated comments directly to the pull request. Analysis is directed b
This tool provides automated vulnerability detection and CI/CD integration for security analysis, functioning as an AI-driven SAST scanner that evaluates code changes for security flaws.
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
Infer is a comprehensive static analysis tool that provides deep inter-procedural bug and vulnerability detection across multiple languages, with native support for CI/CD integration and custom rule development.
Phan is a static analyzer and type checker for PHP that identifies bugs and type incompatibilities without executing the code. It serves as a quality gate for continuous integration pipelines and a tool for verifying type safety, specifically checking union types, generics, and array shapes. The project is distinguished by its use of a background daemon and Language Server Protocol implementation, which provide real-time diagnostics and navigation within editors. It also features a baseline-based suppression system that allows developers to record existing errors in a snapshot file to focus e
Phan is a static analysis tool for PHP that identifies bugs and type issues, serving as a quality gate for CI/CD pipelines, though it is limited to the PHP ecosystem rather than being a multi-language SAST suite.
Brakeman is a static analysis security tool and scanner specifically designed for Ruby on Rails source code. It identifies common security vulnerabilities, such as injection and cross-site scripting, by analyzing the application codebase without executing the application. The tool functions as a security auditor that detects mass assignment risks and template vulnerabilities. It evaluates the final output of rendered views and identifies unrestricted assignment patterns that could allow unauthorized modification of model attributes. The system provides vulnerability management through the us
Brakeman is a specialized static analysis security tool that identifies vulnerabilities in Ruby on Rails applications, providing the core security scanning and CI/CD integration capabilities required for SAST.
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
Error Prone is a powerful static analysis tool that integrates directly into the Java compiler to detect bugs and enforce coding standards, though it is limited to the Java ecosystem rather than being a multi-language SAST suite.
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
Bandit is a dedicated static analysis security testing tool for Python that provides vulnerability detection and a plugin-based rule engine, though it is limited to the Python ecosystem rather than supporting multiple languages.
Pylint is a static code analysis tool for Python that checks source code for errors, coding standard violations, and code smells without executing the program. It parses code into an abstract syntax tree and walks the tree to detect issues, enforces configurable style rules and naming conventions, and identifies duplicate code blocks by comparing tokenised source sequences. The tool also includes an inference engine that deduces variable types by simulating code paths, enabling deeper analysis even in untyped code. What distinguishes Pylint is its plugin-based checker architecture, which allo
Pylint is a comprehensive static analysis tool that identifies code quality issues and bugs in Python, though it focuses more on linting and style enforcement than on dedicated security vulnerability scanning.
tfsec is a static analysis tool and security scanner for infrastructure as code, specifically designed to detect misconfigurations and compliance violations in Terraform and cloud infrastructure definitions before deployment. It functions as a cloud security policy engine that identifies vulnerabilities across multiple cloud platforms. The tool provides capabilities for cloud compliance auditing and scanning of Cloud Development Kit code. It supports custom security policy enforcement and allows for the definition of organization-specific security requirements. The scanner includes features
This tool performs static analysis specifically for infrastructure-as-code configurations to identify security vulnerabilities and compliance issues, fitting the category of a specialized SAST scanner for cloud environments.
Plato is a JavaScript static analysis tool and code complexity visualizer. It computes complexity metrics and runs linting checks on JavaScript source code to evaluate codebase quality, presenting the results through a static analysis dashboard. The system aggregates linting data and technical metrics into timestamped reports. It specifically calculates cyclomatic and Halstead metrics to identify overly complicated files and assess the maintainability of a project. The tool provides capabilities for source code visualization, automated quality reporting, and maintainability assessment. It in
Plato is a static analysis tool focused on code quality metrics and complexity visualization for JavaScript, which fits the category of static analysis even though it is specialized for maintainability rather than broad security vulnerability scanning.
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
Ruff is a high-performance static analysis tool that identifies programming errors and security vulnerabilities in Python code, making it a capable choice for automated code quality and security checks.
React Doctor is a static analysis tool for React codebases designed to identify security, performance, and architectural issues. It functions as a codebase health diagnostic engine that produces numeric health scores and structured diagnostics to improve maintainability. The tool features an incremental code scanner that evaluates only the files changed between branches or staged in the working tree to provide fast feedback. It is designed to operate as a quality gate within CI pipelines, allowing for the enforcement of codebase health standards by failing builds on critical errors. The anal
React Doctor is a static analysis tool specifically built to identify security and quality issues in React codebases, offering CI/CD integration and a rule-based diagnostic engine that fits the requirements for a specialized SAST tool.
Semgrep is a comprehensive static analysis tool that provides vulnerability detection, a powerful custom rule engine, and native CI/CD integration across many languages, making it a flagship solution for this category.
Slither is a specialized static analysis framework for smart contracts that provides automated vulnerability detection and custom rule creation, though its language support is focused on blockchain-specific languages rather than general-purpose software.
This project is a static analysis tool and linter designed to improve the quality, reliability, and portability of shell scripts. By performing deep structural analysis, it identifies common programming pitfalls, syntax errors, and security vulnerabilities before scripts are executed. It functions as an automated code reviewer that enforces best practices and helps developers maintain consistent, robust code across different operating environments. The tool distinguishes itself through its dialect-aware grammar resolution, which adapts its parsing logic based on the specific shell interpreter
This is a specialized static analysis tool that identifies security vulnerabilities and code quality issues specifically in shell scripts, making it a focused but valid member of the SAST category.
Mobile Security Framework is an automated security testing platform designed for the analysis of Android, iOS, and Windows mobile application binaries. It functions as a comprehensive suite for identifying security vulnerabilities, privacy risks, and malicious code within mobile software packages. The framework distinguishes itself by combining static and dynamic analysis techniques to evaluate application behavior. It performs static inspection of source code and binaries to detect insecure patterns, while simultaneously utilizing dynamic instrumentation and containerized sandboxing to monit
This is a specialized security testing platform that performs automated static and dynamic analysis specifically for mobile application binaries, making it a highly relevant tool for identifying vulnerabilities in that domain.
This project is a static analysis engine and type checker designed for PHP codebases. It evaluates source code structure and type annotations to identify potential bugs, type mismatches, and logic errors without executing the application. By parsing code into an abstract syntax tree and applying a rule-based validation framework, it enforces code quality and safety standards across a project. What distinguishes this tool is its sophisticated type inference engine, which models dynamic language features, magic methods, and conditional types to maintain accuracy even in unconventional code. It
This is a specialized static analysis tool for PHP that identifies bugs and type mismatches, though it is limited to the PHP ecosystem rather than being a general-purpose multi-language SAST platform.
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
Larastan is a static analysis tool that identifies bugs and code quality issues specifically within Laravel applications by extending PHPStan, making it a specialized but valid implementation of static analysis for the PHP ecosystem.
Qodo Cover is an engineering governance platform and AI-powered assistant designed for automated code review and unit test generation. It utilizes an abstract syntax tree codebase knowledge graph to map dependencies and architectural relationships, allowing it to analyze pull requests and enforce organizational coding standards. The system distinguishes itself through a multi-agent analysis pipeline that performs architectural reasoning and identifies bugs beyond the immediate diff. It features a model context protocol server to expose codebase intelligence to external tools and can automatic
Qodo Cover functions as an automated code review and analysis platform that identifies bugs and enforces coding standards, fitting the category of a SAST tool by providing intelligent, context-aware code evaluation and vulnerability detection.
gosec is a static analysis security tool designed to scan Go source code for vulnerabilities and common coding flaws. It functions as a security analyzer that inspects the abstract syntax tree to identify insecure function calls, API usage, and potential security risks. The tool distinguishes itself by mapping detected vulnerabilities to Common Weakness Enumeration identifiers for standardized reporting and integrating with external AI models to suggest code fixes for identified issues. Its capabilities cover the detection of injection vulnerabilities, hardcoded credentials, weak cryptograph
This tool performs automated static analysis specifically for Go source code to identify security vulnerabilities and coding flaws, fitting the category despite its language-specific focus.
RuboCop is a static code analyzer, linter, and formatter for the Ruby language. It identifies style violations, smells, and errors in source code to ensure consistency and maintainability based on community guidelines. The project provides automatic source code formatting to rewrite files according to defined stylistic standards. It also functions as a language server protocol implementation, surfacing violations and suggested fixes directly within code editors. The tool covers code complexity monitoring to track the size of classes and methods and employs non-inclusive language detection to
RuboCop is a static analysis tool that identifies code quality issues and style violations in Ruby, though it is specialized for a single language rather than being a broad-spectrum security-focused SAST suite.
SpotBugs is a static analysis tool and bytecode analyzer for Java applications. It scans compiled class files to identify bugs, security vulnerabilities, and performance issues without executing the code. The system functions as both a bug detector and a static application security testing tool to locate logical errors and API misuse. The project distinguishes itself through a plugin-based detector architecture that allows the integration of external libraries to add custom detection rules. It provides specialized security auditing for vulnerabilities such as SQL injection, cross-site scripti
SpotBugs is a specialized static analysis tool for Java that identifies security vulnerabilities and code quality issues, fitting the category despite its focus on bytecode rather than source code.
PHPMD
This tool performs static analysis to identify code quality issues and potential bugs in PHP projects, serving as a specialized linter that fits the category of static analysis even though its scope is limited to a single language.
DevSkim is a set of IDE plugins, language analyzers, and rules that provide security "linting" capabilities.
DevSkim provides security-focused linting and vulnerability detection that integrates directly into IDEs, serving as a specialized static analysis tool for identifying security issues in code.
Phasar is a static analysis framework designed for the inspection of software logic through the processing of compiler intermediate representations. It provides a modular pipeline for building program representations, including call graphs, control flow graphs, and type hierarchies, which serve as the foundation for deep structural analysis of software behavior. The framework specializes in interprocedural data flow analysis and pointer alias resolution, enabling the tracking of information movement across function boundaries and the identification of indirect memory access patterns. By lever
Phasar is a powerful static analysis framework built on LLVM that provides the core data-flow analysis capabilities required to build custom SAST tools for C and C++ codebases.
Shannon is an integrated security platform designed for autonomous penetration testing, static and dynamic analysis, and automated vulnerability remediation within self-hosted, private infrastructure. It functions as a unified security suite that orchestrates the entire lifecycle of vulnerability management, from initial discovery and reachability prioritization to the generation and verification of code-level patches. The platform distinguishes itself through its agentic approach to security, deploying autonomous agents to execute both black-box and white-box exploits against running applica
Shannon is an integrated security platform that includes static analysis as a core component of its autonomous vulnerability management and remediation lifecycle, fitting the category of a comprehensive SAST and security orchestration tool.
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
This tool provides automated static analysis for Java code quality and bug detection, serving as a specialized linter that integrates into development workflows to enforce standards.
Standard is a suite of static analysis tools for JavaScript, comprising a linter, formatter, and a predefined style guide. It functions as a static code analyzer that scans source code for style violations and potential errors without executing the program. The project provides an automatic code fixer that rewrites source code to resolve formatting issues and enforce syntax consistency. It implements a standardized set of rules for JavaScript formatting and syntax to ensure a uniform appearance across different projects. The system covers a wide range of static analysis capabilities, includi
Standard is a linter and formatter that performs static analysis to identify syntax errors and code quality issues in JavaScript, serving as a foundational tool for maintaining code standards.
This project is a static analysis linter, code quality tool, and language auditor for Rust. It functions as an automated refactoring system designed to identify common mistakes and suggest idiomatic improvements for Rust source code. The tool identifies non-idiomatic patterns, performance bottlenecks, and code smells to improve the overall correctness and quality of the code. It specifically audits memory safety by flagging suspicious use of unsafe blocks and pointer manipulations and detects inefficient operations to optimize execution speed. The analysis surface covers coding style enforce
This is a specialized static analysis linter for Rust that identifies code quality issues and security-sensitive patterns, serving as a focused tool for automated code auditing despite being limited to a single language.
| Repository | Stele | Limbaj | Licență | Ultimul push |
|---|---|---|---|---|
| semgrep/semgrep | 15.6K | OCaml | LGPL-2.1 | |
| eslint/eslint | 27.3K | JavaScript | MIT | |
| pmd/pmd | 5.4K | Java | NOASSERTION | |
| sonarsource/sonarqube | 10.3K | Java | lgpl-3.0 | |
| bearer/bearer | 2.6K | Go | other | |
| anthropics/claude-code-security-review | 5.3K | Python | MIT | |
| facebook/infer | 15.6K | OCaml | MIT | |
| phan/phan | 5.6K | PHP | NOASSERTION | |
| presidentbeef/brakeman | 7.2K | Ruby | NOASSERTION | |
| google/error-prone | 7.2K | Java | Apache-2.0 |