This repository lists static analysis tools for all programming languages, build tools, config files and more. The focus is on tools which improve code quality such as linters and formatters. The official website, ? analysis-tools.dev is based on this repository and adds rankings, user comments, and additional resources like videos for each tool.
This project would not be possible without the generous support of our sponsors.
|
|
|
|
If you also want to support this project, head over to our ? ?? Github sponsors page).
Pull requests are very welcome!
Also check out the sister project, 958 106? awesome-dynamic-analysis).
? abaplint — Linter for ABAP, written in TypeScript.
? abapOpenChecks — Enhances the SAP Code Inspector with new and customizable checks.
? Codepeer ©️ — Detects run-time and logic errors.
? Polyspace for Ada ©️ — Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in source code.
? SPARK ©️ — Static analysis and formal verification toolset for Ada.
749 75? STOKE) ? Astrée ©️ — Astrée automatically proves the absence of runtime errors and invalid concurrent behavior in C/C++ applications. It is sound for floating-point computations, very fast, and exceptionally precise. The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, DO-178C level A, and other safety standards. Jenkins and Eclipse plugins are available.
CBMC — Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses.
? clang-tidy — Clang-based C++ linter tool with the (limited) ability to fix issues, too.
672 94? clazy) — Qt-oriented static code analyzer based on the Clang framework. clazy is a compiler plugin which allows clang to understand Qt semantics. You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations to misusage of API, including fix-its for automatic refactoring.
72 27? CMetrics) — Measures size and complexity for C files.
? CPAchecker — A tool for configurable software verification of C programs. The name CPAchecker was chosen to reflect that the tool is based on the CPA concepts and is used for checking software programs.
? cppcheck — Static analysis of C/C++ code.
? CppDepend ©️ — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.
37674 13306? cpplint) — Automated C++ checker that follows Google's style guide.
64 11? cqmetrics) — Quality metrics for C code.
? CScout — Complexity and quality metrics for C and C preprocessor code.
14 3? ENRE-cpp) — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)
ESBMC — ESBMC is an open source, permissively licensed, context-bounded model checker based on satisfiability modulo theories for the verification of single- and multi-threaded C/C++ programs.
flawfinder
266 21? flint++)
? Frama-C — A sound and extensible static analyzer for C code.
? GCC — The GCC compiler has static analysis capabilities since version 10. This option is only available if GCC was configured with analyzer support enabled. It can also output its diagnostics to a JSON file in the SARIF format (from v13).
? Goblint — A static analyzer for the analysis of multi-threaded C programs. Its primary focus is the detection of data races, but it also reports other runtime errors, such as buffer overflows and null-pointer dereferences.
? Helix QAC ©️ — Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards.
2771 191? IKOS) — A sound static analyzer for C/C++ code based on LLVM.
? Joern — Open-source code analysis platform for C/C++ based on code property graphs
KLEE — A dynamic symbolic execution engine built on top of the LLVM compiler infrastructure. It can auto-generate test cases for programs such that the test cases exercise as much of the program as possible.
? LDRA ©️ — A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules.
? MATE
? PC-lint ©️ — Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes code for virtually any platform, supporting C11/C18 and C++17.
? Phasar — A LLVM-based static analysis framework which comes with a taint and type state analysis.
? Polyspace Bug Finder ©️ — Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software.
? Polyspace Code Prover ©️ — Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code.
? scan-build — Frontend to drive the Clang Static Analyzer built into Clang via a regular build.
splint — Annotation-assisted static program checker.
? SVF — A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs.
? TrustInSoft Analyzer ©️ — Exhaustive detection of coding errors and their associated security vulnerabilities. This encompasses a sound undefined behavior detection (buffer overflows, out-of-bounds array accesses, null-pointer dereferences, use-after-free, divide-by-zeros, uninitialized memory accesses, signed overflows, invalid pointer arithmetic, etc.), data flow and control flow verification as well as full functional verification of formal specifications. All versions of C up to C18 and C++ up to C++20 are supported. TrustInSoft Analyzer will acquire ISO 26262 qualification in Q2'2023 (TCL3). A MISRA C checker is also bundled.
? vera++
.NET Analyzers — An organization for the development of analyzers (diagnostics and code fixes) using the .NET Compiler Platform.
949 61? ArchUnitNET) — A C# architecture test library to specify and assert architecture rules in C# for automated testing.
? code-cracker — An analyzer library for C# and VB that uses Roslyn to produce refactorings, code analysis, and other niceties.
160 26? CSharpEssentials)
Designite ©️ — Designite supports detection of various architecture, design, and implementation smells, computation of various code quality metrics, and trend analysis.
? Gendarme — Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET).
737 29? Infer#)
965 51? Meziantou.Analyzer) — A Roslyn analyzer to enforce some good practices in C# in terms of design, usage, security, performance, and style.
NDepend ©️ — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.
? Puma Scan — Puma Scan provides real time secure code analysis for common vulnerabilities (XSS, SQLi, CSRF, LDAPi, crypto, deserialization, etc.) as development teams write code in Visual Studio.
3128 263? Roslynator) — A collection of 190+ analyzers and 190+ refactorings for C#, powered by Roslyn.
803 229? SonarAnalyzer.CSharp) — These Roslyn analyzers allow you to produce Clean Code that is safe, reliable, and maintainable by helping you find and correct bugs, vulnerabilities, and code smells in your codebase.
65 16? VSDiagnostics)
91 10? Wintellect.Analyzers) — .NET Compiler Platform ("Roslyn") diagnostic analyzers and code fixes.
? Astrée ©️ — Astrée automatically proves the absence of runtime errors and invalid concurrent behavior in C/C++ applications. It is sound for floating-point computations, very fast, and exceptionally precise. The analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules and supports qualification for ISO 26262, DO-178C level A, and other safety standards. Jenkins and Eclipse plugins are available.
CBMC — Bounded model-checker for C programs, user-defined assertions, standard assertions, several coverage metric analyses.
? clang-tidy — Clang-based C++ linter tool with the (limited) ability to fix issues, too.
672 94? clazy) — Qt-oriented static code analyzer based on the Clang framework. clazy is a compiler plugin which allows clang to understand Qt semantics. You get more than 50 Qt related compiler warnings, ranging from unneeded memory allocations to misusage of API, including fix-its for automatic refactoring.
72 27? CMetrics) — Measures size and complexity for C files.
? cppcheck — Static analysis of C/C++ code.
? CppDepend ©️ — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.
37674 13306? cpplint) — Automated C++ checker that follows Google's style guide.
64 11? cqmetrics) — Quality metrics for C code.
? CScout — Complexity and quality metrics for C and C preprocessor code.
14 3? ENRE-cpp) — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-cpp is a ENtity Relationship Extractor for C/C++ based on @eclipse/CDT. (Under development)
ESBMC — ESBMC is an open source, permissively licensed, context-bounded model checker based on satisfiability modulo theories for the verification of single- and multi-threaded C/C++ programs.
flawfinder
266 21? flint++)
? Frama-C — A sound and extensible static analyzer for C code.
? Helix QAC ©️ — Enterprise-grade static analysis for embedded software. Supports MISRA, CERT, and AUTOSAR coding standards.
2771 191? IKOS) — A sound static analyzer for C/C++ code based on LLVM.
? Joern — Open-source code analysis platform for C/C++ based on code property graphs
KLEE — A dynamic symbolic execution engine built on top of the LLVM compiler infrastructure. It can auto-generate test cases for programs such that the test cases exercise as much of the program as possible.
? LDRA ©️ — A tool suite including static analysis (TBVISION) to various standards including MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules.
? MATE
? PC-lint ©️ — Static analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes code for virtually any platform, supporting C11/C18 and C++17.
? Phasar — A LLVM-based static analysis framework which comes with a taint and type state analysis.
? Polyspace Bug Finder ©️ — Identifies run-time errors, concurrency issues, security vulnerabilities, and other defects in C and C++ embedded software.
? Polyspace Code Prover ©️ — Provide code verification that proves the absence of overflow, divide-by-zero, out-of-bounds array access, and certain other run-time errors in C and C++ source code.
? scan-build — Frontend to drive the Clang Static Analyzer built into Clang via a regular build.
splint — Annotation-assisted static program checker.
? SVF — A static tool that enables scalable and precise interprocedural dependence analysis for C and C++ programs.
? TrustInSoft Analyzer ©️ — Exhaustive detection of coding errors and their associated security vulnerabilities. This encompasses a sound undefined behavior detection (buffer overflows, out-of-bounds array accesses, null-pointer dereferences, use-after-free, divide-by-zeros, uninitialized memory accesses, signed overflows, invalid pointer arithmetic, etc.), data flow and control flow verification as well as full functional verification of formal specifications. All versions of C up to C18 and C++ up to C++20 are supported. TrustInSoft Analyzer will acquire ISO 26262 qualification in Q2'2023 (TCL3). A MISRA C checker is also bundled.
? vera++
1726 293? clj-kondo) — A linter for Clojure code that sparks joy. It informs you about potential errors while you are typing.? ameba — A static code analysis tool for Crystal.
? crystal — The Crystal compiler has built-in linting functionality.
? Dart Code Metrics
? effective_dart — Linter rules corresponding to the guidelines in Effective Dart
277 82? lint)
? Linter for dart — Style linter for Dart.
100 16? DelphiLint) — A Delphi IDE package providing on-the-fly code analysis and linting, powered by SonarDelphi.
? Fix Insight ©️ — A free IDE Plugin for static code analysis. A Pro edition includes a command line tool for automation purposes.
? Pascal Analyzer ©️ — A static code analysis tool with numerous reports. A free Lite version is available with limited reporting.
? Pascal Expert ©️ — IDE plugin for code analysis. Includes a subset of Pascal Analyzer reporting capabilities and is available for Delphi versions 2007 and later.
110 19? SonarDelphi) — Delphi static analyzer for the SonarQube code quality platform.
241 80? D-scanner) — D-Scanner is a tool for analyzing D source code. 4951 420? credo) — A static code analysis tool with a focus on code consistency and teaching.
1720 142? dialyxir) — Mix tasks to simplify use of Dialyzer in Elixir projects.
1693 96? sobelow) — Security-focused static analysis for the Phoenix Framework.
? elm-analyse
? elm-review — Analyzes whole Elm projects, with a focus on shareable and custom rules written in Elm that add guarantees the Elm compiler doesn't give you.
? dialyzer — The DIALYZER, a DIscrepancy AnaLYZer for ERlang programs. Dialyzer is a static analysis tool that identifies software discrepancies, such as definite type errors, code that has become dead or unreachable because of programming error, and unnecessary tests, in single Erlang modules or entire (sets of) applications. Dialyzer starts its analysis from either debug-compiled BEAM bytecode or from Erlang source code. The file and line number of a discrepancy is reported along with an indication of what the discrepancy is about. Dialyzer bases its analysis on the concept of success typings, which allows for sound warnings (no false positives).
425 87? elvis) — Erlang Style Reviewer.
103 11? Primitive Erlang Security Tool (PEST))
? fantomas — F# source code formatter.
? FSharpLint — Lint tool for F#.
? ionide-analyzers — A collection of F# analyzers, built with the FSharp.Analyzers.SDK.
? fprettify — Auto-formatter for modern fortran source code, written in Python. Fprettify is a tool that provides consistent whitespace, indentation, and delimiter alignment in code, including the ability to change letter case and handle preprocessor directives, all while preserving revision history and tested for editor integration.
62 17? i-Code CNES for Fortran) — An open source static code analysis tool for Fortran 77, Fortran 90 and Shell.
? aligncheck — Find inefficiently packed structs.
314 33? bodyclose) — Checks whether HTTP response body is closed.
50 15? deadcode) — Finds unused code.
316 28? dingo-hunter)
73 2? dogsled) — Finds assignments/declarations with too many blank identifiers.
346 25? dupl)
2365 138? errcheck) — Check that error return values are used.
372 16? errwrap) — Wrap and fix Go errors with the new %w verb directive. This tool analyzes fmt.Errorf() calls and reports calls that contain a verb directive that is different than the new %w verb directive introduced in Go v1.13. It's also capable of rewriting calls to use the new %w wrap verb directive.
51 4? flen) — Get info on length of functions in a Go package.
3507 267? Go Meta Linter) golangci-lint for new projects.
? go tool vet --shadow — Reports variables that may have been unintentionally shadowed.
? go vet — Examines Go source code and reports suspicious.
339 16? go-consistent) — Analyzer that helps you to make your Go programs more consistent.
1873 117? go-critic) — Go source code linter that maintains checks which are currently not implemented in other linters.
? go/ast — Package ast declares the types used to represent syntax trees for Go packages.
61 2? goast)
105 12? gochecknoglobals)
296 17? goconst) — Finds repeated strings that could be replaced by a constant.
1388 83? gocyclo)
? gofmt -s — Checks if the code is properly formatted and could not be further simplified.
3390 113? gofumpt) — Enforce a stricter format than gofmt, while being backwards-compatible. That is, gofumpt is happy with a subset of the formats that gofmt is happy with.
The tool is a fork of gofmt as of Go 1.19, and requires Go 1.18 or later. It can be used as a drop-in replacement to format your Go code, and running gofmt after gofumpt should produce no changes.
gofumpt will never add rules which disagree with gofmt formatting. So we extend gofmt rather than compete with it.
? goimports — Checks missing or unreferenced package imports.
2181 110? gokart) — Golang security analysis with a focus on minimizing false positives. It is capable of tracing the source of variables and function arguments to determine whether input sources are safe.
? GolangCI-Lint — Alternative to Go Meta Linter: GolangCI-Lint is a linters aggregator.
3973 491? golint) — Prints out coding style mistakes in Go source code.
3130 271? goreporter) — Concurrently runs many linters and normalises their output to a report.
466 19? goroutine-inspect) — An interactive tool to analyze Golang goroutine dump.
? gosec (gas) — Inspects source code for security problems by scanning the Go AST.
? gotype — Syntactic and semantic analysis similar to the Go compiler.
? govulncheck — Govulncheck reports known vulnerabilities that affect Go code. It uses static analysis of source code or a binary's symbol table to narrow down reports to only those that could affect the application. By default, govulncheck makes requests to the Go vulnerability database at https://vuln.go.dev. Requests to the vulnerability database contain only module paths, not code or other properties of your program.
404 25? ineffassign)
689 17? interfacer)
65 9? lll)
538 42? maligned)
1354 115? misspell) — Finds commonly misspelled English words.
127 15? nakedret) — Finds naked returns.
85 5? nargs) — Finds unused arguments in function declarations.
643 24? prealloc) — Finds slice declarations that could potentially be preallocated.
8053 427? Reviewdog) — A tool for posting review comments from any linter in any code hosting service.
? revive — Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint.
564 47? safesql)
369 15? shisho)
? staticcheck — Go static analysis that specialises in finding bugs, simplifying code and improving performance.
? structcheck — Find unused struct fields.
817 27? structslop) — Static analyzer for Go that recommends struct field rearrangements to provide for maximum space/allocation efficiency
? test — Show location of test failures from the stdlib testing module.
380 26? unconvert) — Detect redundant type conversions.
533 28? unparam) — Find unused function parameters.
? varcheck — Find unused global variables and constants.
267 41? wsl) — Enforces empty lines at the right places.
690 67? brittany)
1484 197? HLint) — HLint is a tool for suggesting possible improvements to Haskell code.
? Liquid Haskell — Liquid Haskell is a refinement type checker for Haskell programs.
? Stan — Stan is a command-line tool for analysing Haskell projects and outputting discovered vulnerabilities in a helpful way with possible solutions for detected problems.
170 28? Weeder) — A tool for detecting dead exports or package imports in Haskell code.
? Checker Framework — Pluggable type-checking for Java. This is not just a bug-finder, but a verification tool that gives a guarantee of correctness. It comes with 27 pre-built type systems, and it enables users to define their own type system; the manual lists over 30 user-contributed type systems.
? checkstyle — Checking Java source code for adherence to a Code Standard or set of validation rules (best practices).
387 154? ck) — Calculates Chidamber and Kemerer object-oriented metrics by processing the source Java files.
ckjm — Calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files.
? CogniCrypt — Checks Java source and byte code for incorrect uses of cryptographic APIs.
1034 356? Dataflow Framework) — An industrial-strength dataflow framework for Java. The Dataflow Framework is used in the Checker Framework, Google’s Error Prone, Uber’s NullAway, Meta’s Nullsafe, and in other contexts. It is distributed with the Checker Framework.
DesigniteJava ©️ — DesigniteJava supports detection of various architecture, design, and implementation smells along with computation of various code quality metrics.
? Diffblue ©️ — Diffblue is a software company that provides AI-powered code analysis and testing solutions for software development teams. Its technology helps developers automate testing, find bugs, and reduce manual labor in their software development processes. The company's main product, Diffblue Cover, uses AI to generate and run unit tests for Java code, helping to catch errors and improve code quality.
? Doop — Doop is a declarative framework for static analysis of Java/Android programs, centered on pointer analysis algorithms. Doop provides a large variety of analyses and also the surrounding scaffolding to run an analysis end-to-end (fact generation, processing, statistics, etc.).
13 8? ENRE-java) — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-java is a ENtity Relationship Extractor for Java projects based on @Eclipse JDT/parser.
? Error Prone — Catch common Java mistakes as compile-time errors.
fb-contrib — A plugin for FindBugs with additional bug detectors.
340 34? forbidden-apis) — Detects and forbids invocations of specific method/class/field (like reading from a text stream without a charset). Maven/Gradle/Ant compatible.
5674 864? google-java-format) — Reformats Java source code to comply with Google Java Style
304 32? HuntBugs)
? IntelliJ IDEA ©️ — Comes bundled with a lot of inspections for Java and Kotlin and includes tools for refactoring, formatting and more.
? JArchitect ©️ — Measure, query and visualize your code and avoid unexpected issues, technical debt and complexity.
? JBMC — Bounded model-checker for Java (bytecode), verifies user-defined assertions, standard assertions, several coverage metric analyses.
? Mariana Trench — Our security focused static analysis tool for Android and Java applications. Mariana Trench analyzes Dalvik bytecode and is built to run fast on large codebases (10s of millions of lines of code). It can find vulnerabilities as code changes, before it ever lands in your repository.
3664 299? NullAway) — Type-based null-pointer checker with low build-time overhead; an Error Prone plugin.
? OWASP Dependency Check — Checks dependencies for known, publicly disclosed, vulnerabilities.
? qulice — Combines a few (pre-configured) static analysis tools (checkstyle, PMD, Findbugs, ...).
460 42? RefactorFirst) — Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first.
? Soot — A framework for analyzing and transforming Java and Android applications.
? Spoon — Spoon is a metaprogramming library to analyze and transform Java source code (incl Java 9, 10, 11, 12, 13, 14). It parses source files to build a well-designed AST with powerful analysis and transformation API. Can be integrated in Maven and Gradle.
? SpotBugs — SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.
? steady
148 39? Violations Lib) — Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins.
aether
? Closure Compiler — A compiler tool to increase efficiency, reduce size, and provide code warnings in JavaScript files.
111 29? ClosureLinter)
209 27? complexity-report)
? DeepScan ©️ — An analyzer for JavaScript which targets runtime errors and quality issues rather than coding conventions.
205 40? es6-plato)
266 25? escomplex)
? Esprima
? flow — A static type checker for JavaScript.
? hegel — A static type checker for JavaScript with a bias on type inference and strong type systems.
? jshint — Detect errors and potential problems in JavaScript code and enforce your team's coding conventions.
3619 463? JSLint) — The JavaScript Code Quality Tool.
? JSPrime
? NodeJSScan — A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status.
4561 321? plato)
431 201? Polymer-analyzer) — A static analysis framework for Web Components.
? retire.js — Scanner detecting the use of JavaScript libraries with known vulnerabilities.
RSLint
standard — An npm module that checks for Javascript Styleguide issues.
? tern — A JavaScript code analyzer for deep, cross-editor language support.
? TypL
7718 292? xo) — Opinionated but configurable ESLint wrapper with lots of goodies included. Enforces strict and readable code.
27 4? yardstick)
750 30? JET) — Static type inference system to detect bugs and type instabilities.
148 29? StaticLint) — Static Code Analysis for Julia
? detekt — Static code analysis for Kotlin code.
? diktat — Strict coding standard for Kotlin and a linter that detects and auto-fixes code smells.
? ktfmt — A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions. A ktfmt IntelliJ plugin is available from the plugin repository. To install it, go to your IDE's settings and select the Plugins category. Click the Marketplace tab, search for the ktfmt plugin, and click the Install button.
? ktlint — An anti-bikeshedding Kotlin linter with built-in formatter.
372 57? luacheck) — A tool for linting and static analysis of Lua code.
85 19? lualint) — lualint performs luac-based static analysis of global variable usage in Lua source code.
? Luanalysis
? DrNim — DrNim combines the Nim frontend with the Z3 proof engine in order to allow verify / validate software written in Nim.
85 6? nimfmt) — Nim code formatter / linter / style checker
224 41? Sys) — A static/symbolic Tool for finding bugs in (browser) code. It uses the LLVM AST to find bugs like uninitialized memory access.
376 66? VeriFast) — A tool for modular formal verification of correctness properties of single-threaded and multithreaded C and Java programs annotated with preconditions and postconditions written in separation logic. To express rich specifications, the programmer can define inductive datatypes, primitive recursive pure functions over these datatypes, and abstract separation logic predicates.
? CakeFuzzer — Web application security testing tool for CakePHP-based web applications. CakeFuzzer employs a predefined set of attacks that are randomly modified before execution. Leveraging its deep understanding of the Cake PHP framework, Cake Fuzzer launches attacks on all potential application entry points.
1362 56? churn-php) — Helps discover good candidates for refactoring.
465 10? composer-dependency-analyser) — Fast detection of composer dependency issues.
530 26? dephpend) — Dependency analysis tool.
393 40? deprecation-detector) — Finds usages of deprecated (Symfony) code.
2678 134? deptrac) — Enforce rules for dependencies between software layers.
114 14? DesignPatternDetector) — Detection of design patterns in PHP code.
? EasyCodingStandard — Combine 10696 1478? PHP_CodeSniffer) and 12941 1583? PHP-CS-Fixer).
? Enlightn — A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks.
? exakat — An automated code reviewing engine for PHP.
4161 437? GrumPHP) — Checks code on every commit.
5639 424? larastan) — Adds static analysis to Laravel improving developer productivity and code quality. It is a wrapper around PHPStan.
? Mondrian
? Nitpick CI ©️ — Automated PHP code review.
293 22? parallel-lint) — This tool checks syntax of PHP files faster than serial check with a fancier output.
368 41? Parse) — A Static Security Scanner.
? pdepend — Calculates software metrics like cyclomatic complexity for PHP code.
? ?? phan) — A modern static analyzer from etsy.
1100 45? PHP Architecture Tester) — Easy to use architecture testing tool for PHP.
158 10? PHP Assumptions) — Checks for weak assumptions.
? PHP Coding Standards Fixer — Fixes your code according to standards like PSR-1, PSR-2, and the Symfony standard.
? PHP Insights — Instant PHP quality checks from your console. Analysis of code quality and coding style as well as overview of code architecture and its complexity.
? Php Inspections (EA Extended) — A Static Code Analyzer for PHP.
? PHP Refactoring Browser — Refactoring helper.
430 28? PHP Semantic Versioning Checker)
17109 1102? PHP-Parser) — A PHP parser written in PHP.
68 22? php-speller) — PHP spell check library.
190 44? PHP-Token-Reflection)
1524 121? php7cc)
797 92? php7mar)
? PHP_CodeSniffer
761 41? PHPArkitect) — PHPArkitect helps you to keep your PHP codebase coherent and solid, by permitting to add some architectural constraint check to your workflow. You can express the constraint that you want to enforce, in simple and readable PHP code.
97 8? phpca)
2214 191? phpcpd)
415 47? phpdcd)
? PhpDependencyAnalysis
366 38? PhpDeprecationDetector) — Analyzer of PHP code to search issues with deprecated functionality in newer interpreter versions. It finds removed objects (functions, variables, constants and ini-directives), deprecated functions functionality, and usage of forbidden names or tricks (e.g. reserved identifiers in newer versions).
226 15? phpdoc-to-typehint)
? phpDocumentor — Analyzes PHP source code to generate documentation.
2336 165? phploc) — A tool for quickly measuring the size and analyzing the structure of a PHP project.
? PHPMD — Finds possible bugs in your code.
PhpMetrics — Calculates and visualizes various code quality metrics.
560 46? phpmnd) — Helps to detect magic numbers.
? PHPQA
1231 67? phpqa - jakzal) — Many tools for PHP static analysis in one container.
327 29? phpqa - jmolivas) — PHPQA all-in-one Analyzer CLI tool.
639 77? phpsa)
? PHPStan — PHP Static Analysis Tool - discover bugs in your code without running it!
333 61? Progpilot) — A static analysis tool for security purposes.
? Psalm — Static analysis tool for finding type errors in PHP applications.
494 31? Qafoo Quality Analyzer)
? rector — Instant Upgrades and Automated Refactoring of any PHP 5.3+ code. It upgrades your code for PHP 7.4, 8.0 and beyond. Rector promises a low false-positive rate because it looks for narrowly defined AST (abstract syntax tree) patterns. The main use-case are tackling technical debt in your legacy code and removing dead code. Rector provides a set of special rules for Symfony, Doctrine, PHPUnit, and many more.
119 51? Reflection) — Reflection library to do Static Analysis for PHP Projects
? Symfony Insight ©️ — Detect security risks, find bugs and provide actionable metrics for PHP projects.
171 7? Tuli) — A static analysis engine.
118 32? twig-lint) — twig-lint is a lint tool for your twig files.
? WAP — Tool to detect and correct input validation vulnerabilities in PHP (4.0 or higher) web applications and predicts false positives by combining static analysis and data mining.
? Perl::Analyzer — Perl-Analyzer is a set of programs and modules that allow users to analyze and visualize Perl codebases by providing information about namespaces and their relations, dependencies, inheritance, and methods implemented, inherited, and redefined in packages, as well as calls to methods from parent packages via SUPER.
? Perl::Critic — Critique Perl source code for best-practices.
? perltidy — Perltidy is a Perl script which indents and reformats Perl scripts to make them easier to read. The formatting can be controlled with command line parameters. The default parameter settings approximately follow the suggestions in the Perl Style Guide. Besides reformatting scripts, Perltidy can be a great help in tracking down errors with missing or extra braces, parentheses, and square brackets because it is very good at localizing errors.
47 10? zarn) — A lightweight static security analysis tool for modern Perl Apps
909 82? autoflake) — Autoflake removes unused imports and unused variables from Python code.
? autopep8 — A tool that automatically formats Python code to conform to the PEP 8 style guide. It uses the pycodestyle utility to determine what parts of the code needs to be formatted.
? bandit — A tool to find common security issues in Python code.
265 14? bellybutton) — A linting engine supporting custom project-specific rules.
? Black — The uncompromising Python code formatter.
? Bowler — Safe code refactoring for modern Python. Bowler is a refactoring tool for manipulating Python at the syntax tree level. It enables safe, large scale code modifications while guaranteeing that the resulting code compiles and runs. It provides both a simple command line interface and a fluent API in Python for generating complex code modifications in code.
26 10? ciocheck) pep8, pydocstyle, flake8, and pylint.
237 4? cohesion) — A tool for measuring Python class cohesion.
? deal — Design by contract for Python. Write bug-free code. By adding a few decorators to your code, you get for free tests, static analysis, formal verification, and much more.
163 15? Dlint) — A tool for ensuring Python code is secure.
121 18? Dodgy) — Dodgy is a very basic tool to run against your codebase to search for "dodgy" looking values. It is a series of simple regular expressions designed to detect things such as accidental SCM diff checkins, or passwords or secret keys hard coded into files.
13 2? ENRE-py)
? fixit — A framework for creating lint rules and corresponding auto-fixes for source code.
3488 310? flake8) — A wrapper around pyflakes, pycodestyle and mccabe.
? flakeheaven — flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.
? Griffe — Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API.
80 3? InspectorTiger)
? jedi — Autocompletion/static analysis library for Python.
185 26? linty fresh) — Parse lint errors and report them to Github as comments on a pull request.
? mccabe
28 6? multilint) flake8, isort and modernize.
mypy — A static type checker that aims to combine the benefits of duck typing and static typing, frequently used with 4809 176? MonkeyType).
1964 172? prospector) — A wrapper around pylint, pep8, mccabe and others.
127 29? py-find-injection)
? pyanalyze — A tool for programmatically detecting common mistakes in Python code, such as references to undefined variables and type errors. It can be extended to add additional rules and perform checks specific to particular functions.
? PyCodeQual ©️ — PyCodeQual gives you insights into complexity and bug risks. It adds automatic reviews to your pull requests.
? pycodestyle — (Formerly pep8) Check Python code against some of the style conventions in PEP 8.
pydocstyle
? pyflakes — Check Python source files for errors.
pylint — Looks for programming errors, helps enforcing a coding standard and sniffs for some code smells. It additionally includes pyreverse (an UML diagram generator) and symilar (a similarities checker).
? pylyzers — A static code analyzer / language server for Python, written in Rust, focused on type checking and readable output.
? pyre-check — A fast, scalable type checker for large Python codebases.
13613 1514? pyright) — Static type checker for Python, created to address gaps in existing tools like mypy.
212 21? pyroma)
? Pysa — A tool based on Facebook's pyre-check to identify potential security issues in Python code identified with taint analysis.
2181 244? PyT - Python Taint)
? pytype — A static type analyzer for Python code.
? pyupgrade — A tool (and pre-commit hook) to automatically upgrade syntax for newer versions of the language.
111 23? QuantifiedCode)
? radon — A Python tool that computes various metrics from the source code.
2492 54? refurb) — A tool for refurbishing and modernizing Python codebases. Refurb is heavily inspired by clippy, the built-in linter for Rust.
? ruff — Fast Python linter, written in Rust. 10-100x faster than existing linters. Compatible with Python 3.10. Supports file watcher.
? unimport — A linter, formatter for finding and removing unused import statements.
3579 156? vulture) — Find unused classes, functions and variables in Python code.
? wemake-python-styleguide — The strictest and most opinionated python linter ever.
1215 60? wily)
? xenon — Monitor code complexity using 1755 119? radon).
13811 890? yapf) — A formatter for Python files created by Google
YAPF follows a distinctive methodology, originating from the 'clang-format' tool created by Daniel Jasper. Essentially, the program reframes the code to the most suitable formatting that abides by the style guide, even if the original code already follows the style guide. This concept is similar to the Go programming language's 'gofmt' tool, which aims to put an end to debates about formatting by having the entire codebase of a project pass through YAPF whenever changes are made, thereby maintaining a consistent style throughout the project and eliminating the need to argue about style in every code review.
49 7? cyclocomp) — Quantifies the cyclomatic complexity of R functions / expressions.
? goodpractice — Analyses the source code for R packages and provides best-practice recommendations.
1206 186? lintr) — Static Code Analysis for R.
? styler — Formatting of R source code files and pretty-printing of R code.
269 37? Regal) — Regal is a linter for the policy language Rego. Regal aims to catch bugs and mistakes in policy code, while at the same time helping people learn the language, best practices and idiomatic constructs.? brakeman — A static analysis security vulnerability scanner for Ruby on Rails applications.
2690 229? bundler-audit) — Audit Gemfile.lock for gems with security vulnerabilities reported in 1025 221? Ruby Advisory Database).
1314 75? cane)
407 33? Churn) — A Project to give the churn file, class, and method for a project for a given checkin. Over time the tool adds up the history of churns to give the number of times a file, class, or method is changing during the life of a project.
737 86? dawnscanner) — A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks.
682 123? ERB Lint) — Lint your ERB or HTML files
1810 75? Fasterer) — Common Ruby idioms checker.
? flay — Flay analyzes code for structural similarities.
? flog
31 7? Fukuzatsu) — A tool for measuring code complexity in Ruby class files. Its analysis generates scores based on cyclomatic complexity algorithms with no added "opinions".
340 59? htmlbeautifier) — A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates.
386 17? laser)
626 96? MetricFu)
439 17? pelusa) — Static analysis Lint-type tool to improve your OO Ruby code.
155 18? quality)
250 20? Querly)
? Railroader
? rails_best_practices
4052 280? reek) — Code smell detector for Ruby.
277 37? Roodi)
? RuboCop — A Ruby static code analyzer, based on the community Ruby style guide.
641 29? Rubrowser) — Ruby classes interactive dependency graph generator.
ruby-lint
3368 225? rubycritic) — A Ruby code quality reporter.
901 56? rufo) — An opinionated ruby formatter, intended to be used via the command line as a text-editor plugin, to autoformat files on save or on demand.
? Saikuro
? SandiMeter
? Sorbet — A fast, powerful type checker designed for Ruby.
2749 213? Standard Ruby) — Ruby Style Guide, with linter & automatic code fixer
1378 90? Steep) — Gradual Typing for Ruby.
? C2Rust — C2Rust helps you migrate C99-compliant code to Rust. The translator (or transpiler) produces unsafe Rust code that closely mirrors the input C code.
1784 46? cargo udeps) — Find unused dependencies in Cargo.toml. It either prints out a "unused crates" line listing the crates, or it prints out a line saying that no crates were unused.
? cargo-audit — Audit Cargo.lock for crates with security vulnerabilities reported to the ? ?? RustSec Advisory Database).
2398 51? cargo-bloat) — Find out what takes most of the space in your executable. supports ELF (Linux, BSD), Mach-O (macOS) and PE (Windows) binaries.
112 7? cargo-breaking) — cargo-breaking compares a crate's public API between two different branches, shows what changed, and suggests the next version according to semver.
586 52? cargo-call-stack) — Whole program static stack analysis The tool produces the full call graph of a program as a dot file.
? cargo-deny — A cargo plugin for linting your dependencies. It can be used either as a command line too, a Rust crate, or a Github action for CI. It checks for valid license information, duplicate crates, security vulnerabilities, and more.
2723 67? cargo-expand) — Cargo subcommand to show result of macro expansion and #[derive] expansion applied to the current crate. This is a wrapper around a more verbose compiler command.
1417 67? cargo-geiger) — A cargo plugin for analysing the usage of unsafe Rust code Provides statistical output to aid security auditing
380 13? cargo-inspect)
? cargo-semver-checks — Scan your Rust crate releases for semver violations. It can be used either directly via the CLI, as a GitHub Action in CI, or via release managers like release-plz. It found semver violations in ? more than 1 in 6 of the top 1000 most-downloaded crates on crates.io.
728 37? cargo-show-asm) — cargo subcommand showing the assembly, LLVM-IR and MIR generated for Rust code
332 35? cargo-spellcheck) — Checks all your documentation for spelling and grammar mistakes with hunspell (ready) and languagetool (preview)
252 9? cargo-unused-features)
? clippy — A code linter to catch common mistakes and improve your Rust code.
? diff.rs — Web application (WASM) to render a diff between Rust crate versions.
? dylint — A tool for running Rust lints from dynamic libraries. Dylint makes it easy for developers to maintain their own personal lint collections.
? electrolysis
174 5? herbie)
2300 97? kani) — The Kani Rust Verifier is a bit-precise model checker for Rust.
Kani is particularly useful for verifying unsafe code blocks in Rust,
where the "unsafe superpowers" are unchecked by the compiler.
Kani verifies:
40 22? linter-rust)
486 29? lockbud) — Statically detects Rust deadlocks bugs. It currently detects two common kinds of deadlock bugs: doublelock and locks in conflicting order. It will print bugs in JSON format together with the source code location and an explanation of each bug.
1002 86? MIRAI) — And abstract interpreter operating on Rust's mid-level intermediate language, and providing warnings based on taint analysis.
132 4? prae)
? Prusti — A static verifier for Rust, based on the Viper verification infrastructure. By default Prusti verifies absence of panics by proving that statements such as unreachable!() and panic!() are unreachable.
1323 45? Rudra) — Rust Memory Safety & Undefined Behavior Detection. It is capable of analyzing single Rust packages as well as all the packages on crates.io.
3510 256? Rust Language Server)
? rust-analyzer — Supports functionality such as 'goto definition', type inference, symbol search, reformatting, and code completion, and enables renaming and refactorings.
688 30? rust-audit) — Audit Rust binaries for known bugs or security vulnerabilities. This works by embedding data about the dependency tree (Cargo.lock) in JSON format into a dedicated linker section of the compiled executable.
853 62? rustfix) — Read and apply the suggestions made by rustc (and third-party lints, like those offered by clippy).
6104 898? rustfmt) — A tool for formatting Rust code according to style guidelines.
2729 72? RustViz) — RustViz is a tool that generates visualizations from simple Rust programs to assist users in better understanding the Rust Lifetime and Borrowing mechanism. It generates SVG files with graphical indicators that integrate with mdbook to render visualizations of data-flow in Rust programs.
94 4? warnalyzer) — Show unused code from multi-crate Rust projects
173 2? dbcritic) — dbcritic finds problems in a database schema, such as a missing primary key constraint in a table.
? holistic — More than 1,300 rules to analyze SQL queries. Takes an SQL schema definition and the query source code to generate improvement recommendations. Detects code smells, unused indexes, unused tables, views, materialized views, and more.
81 8? pgspot) — Spot vulnerabilities in postgres extension scripts. Finds unsafe search_path usage and unsafe object creation in PostgreSQL extension scripts or any other PostgreSQL SQL code.
181 14? sleek) — Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity. The heavy lifting is done by the sqlformat crate.
2437 120? sqlcheck) — Automatically identify anti-patterns in SQL queries.
? SQLFluff — Multiple dialect SQL linter and formatter.
420 27? sqlint) — Simple SQL linter.
? squawk — Linter for PostgreSQL, focused on migrations. Prevents unexpected downtime caused by database migrations and encourages best practices around Postgres schemas and SQL.
214 74? tsqllint) — T-SQL-specific linter.
29 8? TSqlRules)
? Visual Expert ©️ — Code analysis for PowerBuilder, Oracle, and SQL Server Explores, analyzes, and documents Code
268 34? linter)
Scalastyle — Scalastyle examines your Scala code and indicates potential problems with it.
534 92? scapegoat) — Scala compiler plugin for static code analysis.
? WartRemover — A flexible Scala code linting tool.
348 22? bashate) — Code style enforcement for bash programs. The output format aims to follow pycodestyle (pep8) default output format.
62 17? i-Code CNES for Shell) — An open source static code analysis tool for Shell and Fortran (77 and 90).
17 0? kmdr) — CLI tool for learning commands from your terminal. kmdr delivers a break down of commands with every attribute explained.
? sh — A shell parser, formatter, and interpreter with bash support; includes shfmt
? shellcheck — ShellCheck, a static analysis tool that gives warnings and suggestions for bash/sh shell scripts.
4640 130? shellharden) — A syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting.
8001 638? SwiftFormat) — A library and command-line formatting tool for reformatting Swift code.
? SwiftLint — A tool to enforce Swift style and conventions.
? Tailor
Frink — A Tcl formatting and static check program (can prettify the program, minimise, obfuscate or just sanity check it).
? Nagelfar — A static syntax checker for Tcl.
69 36? tclchecker) — A static syntax analysis module (as part of 69 36? TDK)).
1666 230? Angular ESLint) — Linter for Angular projects
Codelyzer
9 5? ENRE-ts) — ENRE (ENtity Relationship Extractor) is a tool for extraction of code entity dependencies or relationships from source code. ENRE-ts is a ENtity Relationship Extractor for ECMAScript and TypeScript based on @babel/parser.
? fta — Rust-based static analysis for TypeScript projects
? stc
? tslint ? ?? this issue) for more details. typescript-eslint is now your best option for linting TypeScript.
TSLint is an extensible static analysis tool that checks TypeScript code for readability, maintainability, and functionality errors. It is widely supported across modern editors & build systems and can be customized with your own lint rules, configurations, and formatters.
? tslint-clean-code — A set of TSLint rules inspired by the Clean Code handbook.
701 198? tslint-microsoft-contrib)
240 20? TypeScript Call Graph) — CLI to generate an interactive graph of functions and calls from your TypeScript files
15391 2750? TypeScript ESLint) — TypeScript language extension for eslint.
? zod — TypeScript-first schema validation with static type inference. The goal is to eliminate duplicative type declarations. With Zod, you declare a validator once and Zod will automatically infer the static TypeScript type. It is easy to compose simpler types into complex data structures.
2894 534? Icarus Verilog) — A Verilog simulation and synthesis tool that operates by compiling source code written in IEEE-1364 Verilog into some target format
478 31? svls) — A Language Server Protocol implementation for Verilog and SystemVerilog, including lint capabilities.
29 13? verible-linter-action) — Automatic SystemVerilog linting in github actions with the help of Verible Used to lint Verilog and SystemVerilog source files and comment erroneous lines of code in Pull Requests automatically.
? Verilator — A tool which converts Verilog to a cycle-accurate behavioral model in C++ or SystemC. Performs lint code-quality checks.
302 79? vscode-verilog-hdl-support) — Verilog HDL/SystemVerilog/Bluespec SystemVerilog support for VS Code. Provides syntax highlighting and Linting support from Icarus Verilog, Vivado Logical Simulation, Modelsim and Verilator
704 33? vint) 13612 1441? ale) — Asynchronous Lint Engine for Vim and NeoVim with support for many languages.
? Android Studio — Based on IntelliJ IDEA, and comes bundled with tools for Android including Android Lint.
? AppChecker ©️ — Static analysis for C/C++/C#, PHP and Java.
? Application Inspector ©️ — Commercial Static Code Analysis which generates exploits to verify vulnerabilities.
4263 357? ApplicationInspector) — Creates reports of over 400 rule patterns for feature detection (e.g. the use of cryptography or version control in apps).
? ArchUnit — Unit test your Java or Kotlin architecture.
? Atom-Beautify
? autocorrect — A linter and formatter to help you to improve copywriting, correct spaces, words, punctuations between CJK (Chinese, Japanese, Korean).
? Axivion Bauhaus Suite ©️ — Tracks down error-prone code locations, style violations, cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET, Java and Ada 83/Ada 95.
2120 113? Bearer) — Open-Source static code analysis tool to discover, filter and prioritize security risks and vulnerabilities leading to sensitive data exposures (PII, PHI, PD). Highly configurable and easily extensible, built for security and engineering teams.
? Better Code Hub ©️ — Better Code Hub checks your GitHub codebase against 10 engineering guidelines devised by the authority in software quality, Software Improvement Group.
832 96? Betterscan CE) — Checks your code and infra (various Git repositories supported, cloud stacks, CLI, Web Interface platform, integrationss available) for security and quality issues. Code Scanning/SAST/Linting using many tools/Scanners deduplicated with One Report (AI optional).
? biome — A toolchain for web projects, aimed to provide functionalities to maintain them. Biome formats and lints code in a fraction of a second. It is the successor to Rome. It is designed to eventually replace Biome is designed to eventually replace Babel, ESLint, webpack, Prettier, Jest, and others.
? BugProve ©️ — BugProve is a firmware analysis platform featuring both static and dynamic analysis techniques to discover memory corruptions, command injections and other classes or common weaknesses in binary code. It also detects vulnerable dependencies, weak cryptographic parameters, misconfigurations, and more.
254 28? callGraph) — Statically generates a call graph image and displays it on screen.
? CAST Highlight ©️ — Commercial Static Code Analysis which runs locally, but uploads the results to its cloud for presentation.
? Checkmarx CxSAST ©️ — Commercial Static Code Analysis which doesn't require pre-compilation.
2783 290? ClassGraph) — A classpath and module path scanner for querying or visualizing class metadata or class relatedness.
? Clayton ©️ — AI-powered code reviews for Salesforce. Secure your developments, enforce best practice and control your technical debt in real-time.
? coala
? Cobra ©️ — Structural source code analyzer by NASA's Jet Propulsion Laboratory.
? Codacy ©️ — Code Analysis to ship Better Code, Faster.
? Code Intelligence ©️ — CI/CD-agnostic DevSecOps platform which combines industry-leading fuzzing engines for finding bugs and visualizing code coverage
? Codeac ©️ — Automated code review tool integrates with GitHub, Bitbucket and GitLab (even self-hosted). Available for JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source free)
? codeburner — Provides a unified interface to sort and act on the issues it finds.
? codechecker — A defect database and viewer extension for the Clang Static Analyzer with web GUI.
? CodeFactor ©️ — Automated Code Analysis for repos on GitHub or BitBucket.
? CodeFlow ©️ — Automated code analysis tool to deal with technical depth. Integrates with Bitbucket and Gitlab. (free for Open Source Projects)
? CodeIt.Right ©️ — CodeIt.Right™ provides a fast, automated way to ensure that your source code adheres to (your) predefined design and style guidelines as well as best coding practices.
? Codemodder — Codemodder is a pluggable framework for building expressive codemods. Use Codemodder when you need more than a linter or code formatting tool. Use it to fix non-trivial security issues and other code quality problems.
? CodePatrol ©️ — Automated SAST code reviews driven by security, supports 15+ languages and includes security training.
7855 1576? codeql) — Deep code analysis - semantic queries and dataflow for several languages with VSCode plugin support.
? CodeQue — Ecosystem for structural matching JavaScript and TypeScript code. Offers search tool that understands code structure. Available as CLI tool and Visual Studio Code extension. It helps to search code faster and more accurately making you workflow more effective. Soon it will offer ESLint plugin to create your own rules in minutes to help with assuring codebase quality.
? CodeRush ©️ — Code creation, debugging, navigation, refactoring, analysis and visualization tools that use the Roslyn engine in Visual Studio 2015 and up.
? CodeScan ©️ — Code Quality and Security for Salesforce Developers. Made exclusively for the Salesforce platform, CodeScan’s code analysis solutions provide you with total visibility into your code health.
? CodeScene ©️ — CodeScene is a quality visualization tool for software. Prioritize technical debt, detect delivery risks, and measure organizational aspects. Fully automated.
? CodeSee ©️ — CodeSee is mapping and automating your app's services, directories, file dependencies, and code changes. It's like Google Map, but for code.t
? CodeSonar from GrammaTech ©️ — Advanced, whole program, deep path, static analysis of C, C++, Java and C# with easy-to-understand explanations and code and path visualization.
? Codety ©️ — Codety Scanner is a comprehensive source code scanner that embeds 5000+ static code analysis rules, which aim to detect code issues for 20+ programming languages and IaC tools.
? Codiga ©️ — Automated Code Reviews and Technical Debt management platform that supports 12+ languages.
2164 116? Corrode)
? Coverity ©️ — Synopsys Coverity supports 20 languages and over 70 frameworks including Ruby on rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET.
? cpp-linter-action — A Github Action for linting C/C++ code integrating clang-tidy and clang-format to collect feedback provided in the form of thread comments and/or annotations.
323 17? cqc)
? DeepCode
? DeepSource ©️ — In-depth static analysis to find issues in verticals of bug risks, security, anti-patterns, performance, documentation and style. Native integrations with GitHub, GitLab and Bitbucket. Less than 5% false positives.
201 55? Depends) — Analyses the comprehensive dependencies of code elements for Java, C/C++, Ruby.
? DerScanner ©️ — Multi-language Static Application Security Testing (SAST) platform that detects critical vulnerabilities, including hardcoded secrets, weak cryptography, backdoors, SQL injections, insecure configurations, etc.
921 114? DevSkim) — Regex-based static analysis tool for Visual Studio, VS Code, and Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java, and others.
1936 172? dotenet-format) — A code formatter for .NET. Preferences will be read from an .editorconfig file, if present, otherwise a default set of preferences will be used. At this time dotnet-format is able to format C# and Visual Basic projects with a subset of supported .editorconfig options.
? Embold ©️ — Intelligent software analytics platform that identifies design issues, code issues, duplication and metrics. Supports Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin and more.
846 48? emerge) — Emerge is a source code and dependency visualizer that can be used to gather insights about source code structure, metrics, dependencies and complexity of software projects. After scanning the source code of a project it provides you an interactive web interface to explore and analyze your project by using graph structures.
25359 4594? ESLint) — An extensible linter for JS, following the ECMAScript standard.
? ezno — A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance. Ezno's type checker is built from scratch. The checker is fully compatible with TypeScript type annotations and can work without any type annotations at all.
? Find Security Bugs — The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects)
? Fortify ©️ — A commercial static analysis platform that supports the scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex, ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP, MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby (1.9.3), Swift, Scala, VB, and XML.
? Freeplane Code Explorer — The Code Explorer mode in Freeplane is designed for analyzing the structure and dependencies of code compiled to JVM class files. It also allows displaying ArchUnit test results directly in Freeplane, if Freeplane is running and ArchUnit detects rule violations during the tests.
? Goodcheck — Regexp based customizable linter.
52 3? goone)
graudit — Grep rough audit - source code auditing tool.
? HCL AppScan Source ©️ — Commercial Static Code Analysis.
57 11? Hopper)
? Hound CI
223 42? imhotep)
77 28? include-gardener) #include relations of a given set of files.
? Infer — A static analyzer for Java, C and Objective-C
? Kiuwan ©️ — Identify and remediate cyber threats in a blazingly fast, collaborative environment, with seamless integration in your SDLC. Python, CC++, Java, C#, PHP and more.
? Klocwork ©️ — Quality and Security Static analysis for C/C++, Java and C#.
? LGTM ©️ — Find security vulnerabilities, variants, and critical code quality issues using CodeQL queries over source code. Automatic PR code review; free for open source. Formerly semmle. It supports public Git repositories hosted on Bitbucket Cloud, GitHub.com, GitLab.com.
1878 252? lizard) — Lizard is an extensible Cyclomatic Complexity Analyzer for many programming languages including C/C++ (doesn't require all the header files or Java imports). It also does copy-paste detection (code clone detection/code duplicate detection) and many other forms of static code analysis. Counts lines of code without comments, CCN (cyclomatic complexity number), token count of functions, parameter count of functions.
? Mega-Linter — Mega-Linter can handle any type of project thanks to its 70+ embedded Linters, its advanced reporting, runnable on any CI system or locally, with assisted installation and configuration, able to apply formatting and fixes
? Mobb ©️ — Mobb is a trusted, automatic vulnerability fixer that secures applications, reduces security backlogs, and frees developers to focus on innovation. Mobb is free for open-source projects.
? MOPSA — A static analyzer designed to easily reuse abstract domains across widely different languages (such as C and Python).
oclint — A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C.
? Offensive 360 ©️ — Commercial Static Code Analysis system doesn't require building the source code or pre-compilation.
? OpenRewrite — OpenRewrite ? fixes common static analysis issues reported through Sonar and other tools using a Maven and Gradle plugin or the Moderne CLI.
44 16? OpenStaticAnalyzer) — OpenStaticAnalyzer is a source code analyzer tool, which can perform deep static analysis of the source code of complex systems.
12888 472? oxc) — The Oxidation Compiler is creating a suite of high-performance tools for the JavaScript / TypeScript language re-written in Rust.
? parasoft ©️ — Automated Software Testing Solutions for unit-, API-, and web UI testing. Complies with MISRA, OWASP, and others.
? ?? pfff)
? Pixee ©️ — Pixeebot finds security and code quality issues in your code and creates merge-ready pull requests with recommended fixes.
? PMD — A source code analyzer for Java, Salesforce Apex, Javascript, PLSQL, XML, XSL and others.
? pre-commit — A framework for managing and maintaining multi-language pre-commit hooks.
? Precaution — Precaution is a static analysis security tool (SAST) designed to find potentially critical vulnerabilities in source code prior to production. It is available as a CLI, GitHub Action, and GitHub App.
? Prettier — An opinionated code formatter.
2628 246? Pronto) — Quick automated code review of your changes. Supports more than 40 runners for various languages, including Clang, Elixir, JavaScript, PHP, Ruby and more.
60 12? PT.PM)
715 40? Putout) — Pluggable and configurable code transformer with built-in eslint, babel plugins support for js, jsx typescript, flow, markdown, yaml and json.
? PVS-Studio ©️ — A ? conditionally free for FOSS and individual developers) static analysis of C, C++, C# and Java code. For advertising purposes 29 41? you can propose a large FOSS project for analysis by PVS employees). Supports CWE mapping, OWASP ASVS, MISRA, AUTOSAR and SEI CERT coding standards.
? pylama — Code audit tool for Python and JavaScript. Wraps pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint, and more
? Qwiet AI ©️ — Identify vulnerabilities that are unique to your code base before they reach production. Leverages the Code Property Graph (CPG) to run its analyses concurrently in a single graph of graphs. Automatically finds business logic flaws in dev like hardcoded secrets and logic bombs
? Refactoring Essentials — The free Visual Studio 2015 extension for C# and VB.NET refactorings, including code best practice analyzers.
59 12? relint) — A static file linter that allows you to write custom rules using regular expressions (RegEx).
? ReSharper ©️ — Extends Visual Studio with on-the-fly code inspections for C#, VB.NET, ASP.NET, JavaScript, TypeScript and other technologies.
? RIPS ©️ — A static source code analyser for vulnerabilities in PHP scripts.
1600 466? Roslyn Analyzers) — Roslyn-based implementation of FxCop analyzers.
? Roslyn Security Guard — Project that focuses on the identification of potential vulnerabilities such as SQL injection, cross-site scripting (XSS), CSRF, cryptography weaknesses, hardcoded passwords and many more.
? SafeQL — Validate and auto-generate TypeScript types from raw SQL queries in PostgreSQL. SafeQL is an ESLint plugin for writing SQL queries in a type-safe way.
? SAST Online ©️ — Check the Android Source code thoroughly to uncover and address potential security concerns and vulnerabilities. Static application security testing (Static Code Analysis) tool Online
? Scrutinizer ©️ — A proprietary code quality checker that can be integrated with GitHub.
? Security Code Scan — Security code analyzer for C# and VB.NET. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc. Integrates into Visual Studio 2015 and newer. Detects various security vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc.
? Semgrep — A fast, open-source, static analysis tool for finding bugs and enforcing code standards at editor, commit, and CI time. Its rules look like the code you already write; no abstract syntax trees or regex wrestling. Supports 17+ languages.
? Semgrep Supply Chain ©️ — Quickly find and remediate high-priority security issues. Semgrep Supply Chain prioritizes the 2% of vulnerabilities that are reachable from your code.
815 113? ShiftLeft Scan) — Scan is a free open-source DevSecOps platform for detecting security issues in source code and dependencies. It supports a broad range of languages and CI/CD pipelines.
270 35? shipshape)
? Sigrid ©️ — Sigrid helps you to improve your software by measuring your system's code quality, and then compares the results against a benchmark of thousands of industry systems to give you concrete advice on areas where you can improve.
? Similarity Tester — A tool that finds similarities between or within files to support you encountering DRY principle violations.
? Snyk Code ©️ — Snyk Code finds security vulnerabilities based on AI. Its speed of analysis allow us to analyse your code in real time and deliver results when you hit the save button in your IDE. Supported languages are Java, JavaScript, Python, PHP, C#, Go and TypeScript. Integrations with GitHub, BitBucket and Gitlab. It is free to try and part of the Snyk platform also covering SCA, containers and IaC.
? SonarQube Cloud ©️ — SonarQube Cloud enables your team to deliver clean code consistently and efficiently with a code review tool that easily integrates into the cloud DevOps platforms and extend your CI/CD workflow. SonarQube Cloud provides a free plan.
? SonarQube for IDE — SonarQube for IDE (formerly SonarLint) is a free IDE extension available for IntelliJ, VS Code, Visual Studio, and Eclipse, to find and fix coding issues in real-time, flagging issues as you code, just like a spell-checker. More than a linter, it also delivers rich contextual guidance to help developers understand why there is an issue, assess the risk, and educate them on how to fix it.
? SonarQube Server — SonarQube empowers development teams with a code quality and security solution that deeply integrates into your enterprise environment; enabling you to deploy clean code consistently and reliably. SonarQube provides a free and open source Community Build.
? Sonatype ©️ — Reports known vulnerabilities in common dependencies and recommends updated packages to minimize breaking changes
? Soto Platform ©️ — Suite of static analysis tools consisting of the three components Sotoarc (Architecture Analysis), Sotograph (Quality Analysis), and Sotoreport (Quality report). Helps find differences between architecture and implementation, interface violations (e.g. external access of private parts of subsystems, detection of all classes, files, packages and subsystems which are strongly coupled by cyclical relationships and more. The Sotograph product family runs on Windows and Linux.
? SourceMeter ©️ — Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV versions (including free-form).
493 25? sqlvet) — Performs static analysis on raw SQL queries in your Go code base to surface potential runtime errors. It checks for SQL syntax error, identifies unsafe queries that could potentially lead to SQL injections makes sure column count matches value count in INSERT statements and validates table- and column names.
? StaticReviewer ©️ — Static Reviewer executes code checks according to the most relevant Secure Coding Standards, OWASP, CWE, CVE, CVSS, MISRA, CERT, for 40+ programming languages, using 1000+ built-in validation rules for Security, Deadcode & Best Practices Available a module for Software Composition Analysis (SCA) to find vulnerabilities in open source and third party libraries.
113 17? Super-Linter) — Combination of multiple linters to install as a GitHub Action.
? Svace ©️ — Static code analysis tool for Java,C,C++,C#,Go.
? Synopsys ©️ — A commercial static analysis platform that allows for scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran, and Swift).
? Teamscale ©️ — Static and dynamic analysis tool supporting more than 25 languages and direct IDE integration. Free hosting for Open Source projects available on request. Free academic licenses available.
? TencentCodeAnalysis — Tencent Cloud Code Analysis (TCA for short, code-named CodeDog inside the company early) is a comprehensive platform for code analysis and issue tracking. TCA consist of three components, server, web and client. It integrates of a number of self-developed tools, and also supports dynamic integration of code analysis tools in various programming languages.
4873 592? ThreatMapper) — Vulnerability Scanner and Risk Evaluation for containers, serverless and hosts at runtime. ThreatMapper generates runtime BOMs from dependencies and operating system packages, matches against multiple threat feeds, scans for unprotected secrets, and scores issues based on severity and risk-of-exploit.
429 42? todocheck) — Linter for integrating annotated TODOs with your issue trackers
24121 2379? trivy) — A Simple and Comprehensive Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. Trivy detects vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and application dependencies (Bundler, Composer, npm, yarn, etc.). Checks containers and filesystems.
? trunk ©️ — Modern repositories include many technologies, each with its own set of linters. With 30+ linters and counting, Trunk makes it dead-simple to identify, install, configure, and run the right linters, static analyzers, and formatters for all your repos.
2015 594? TscanCode) — A fast and accurate static analysis solution for C/C++, C#, Lua codes provided by Tencent. Using GPLv3 license.
1633 64? Undebt) — Language-independent tool for massive, automatic, programmable refactoring based on simple pattern definitions.
? Understand ©️ — Code visualization tool that provides code analysis, standards testing, metrics, graphing, dependency analysis and more for Ada, VHDL, and others.
? Unibeautify — Universal code beautifier with a GitHub app. Supports HTML, CSS, JavaScript, TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL, Markdown, and more.
? Upsource ©️ — Code review tool with static code analysis and code-aware navigation for Java, PHP, JavaScript and Kotlin.
? Veracode ©️ — Find flaws in binaries and bytecode without requiring source. Support all major programming languages: Java, .NET, JavaScript, Swift, Objective-C, C, C++ and more.
769 225? WALA) — Static analysis capabilities for Java bytecode and related languages and for JavaScript.
2354 131? weggli) — A fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.
? WhiteHat Application Security Platform ©️ — WhiteHat Scout (for Developers) combined with WhiteHat Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP Top 10.
281 23? Wotan)
? XCode ©️ — XCode provides a pretty decent UI for ? Clang's static code analyzer (C/C++, Obj-C).
? kics — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible
? Steampunk Spotter ©️ — Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks.
21 4? alquitran) — Inspects tar archives and tries to spot portability issues in regard to POSIX 2017 pax specification and common tar implementations.
This project is intended to be used by maintainers of projects who want to offer portable source code archives for as many systems as possible. Checking tar archives with alquitran before publishing them should help spotting issues before they reach distributors and users.
? packj — Packj (pronounced package) is a command line (CLI) tool to vet open-source software packages for "risky" attributes that make them vulnerable to supply chain attacks. This is the tool behind our large-scale security analysis platform Packj.dev that continuously vets packages and provides free reports.
238 7? pure)
7659 1088? angr) — Binary code analysis tool that also supports symbolic execution.
508 56? binbloom) — Analyzes a raw binary firmware and determines features like endianness or the loading address. The tool is compatible with all architectures.
Loading address: binbloom can parse a raw binary firmware and determine its loading address. Endianness: binbloom can use heuristics to determine the endianness of a firmware. UDS Database: binbloom can parse a raw binary firmware and check if it contains an array containing UDS command IDs.
785 156? BinSkim) — A binary static analysis tool that provides security and correctness results for Windows portable executables.
? Black Duck ©️ — Tool to analyze source code and binaries for reusable code, necessary licenses and potential security aspects.
4831 348? bloaty) — Ever wondered what's making your binary big? Bloaty McBloatface will show you a size profile of the binary so you can understand what's taking up space inside. Bloaty performs a deep analysis of the binary. Using custom ELF, DWARF, and Mach-O parsers, Bloaty aims to accurately attribute every byte of the binary to the symbol or compileunit that produced it. It will even disassemble the binary looking for references to anonymous data. F
2398 51? cargo-bloat) — Find out what takes most of the space in your executable. supports ELF (Linux, BSD), Mach-O (macOS) and PE (Windows) binaries.
1164 122? cwe_checker) — cwe_checker finds vulnerable patterns in binary executables.
? Ghidra — A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission
? Hopper ©️ — macOS and Linux reverse engineering tool that lets you disassemble, decompile and debug applications. Hopper displays the code using different representations, e.g. the Control Flow Graph, and the pseudo-code of a procedure. Supports Apple Silicon.
? IDA Free ©️ — Binary code analysis tool.
158 24? Jakstab) — Jakstab is an Abstract Interpretation-based, integrated disassembly and static analysis framework for designing analyses on executables and recovering reliable control flow graphs.
? JEB Decompiler ©️ — Decompile and debug binary code. Break down and analyze document files. Android Dalvik, MIPS, ARM, Intel x86, Java, WebAssembly & Ethereum Decompilers.
? ktool — Fully cross-platform toolkit and library for MachO+Obj-C editing/analysis. Includes a cli kit, a curses GUI, ObjC header dumping, and much more.
1025 161? Manalyze) — A static analyzer, which checks portable executables for malicious content.
2670 341? mcsema)
533 80? Nauz File Detector) — Static Linker/Compiler/Tool detector for Windows, Linux and MacOS.
688 30? rust-audit) — Audit Rust binaries for known bugs or security vulnerabilities. This works by embedding data about the dependency tree (Cargo.lock) in JSON format into a dedicated linker section of the compiled executable.
? Twiggy — Analyzes a binary's call graph to profile code size. The goal is to slim down wasm binary size.
367 42? VMware chap) — chap analyzes un-instrumented ELF core files for leaks, memory growth, and corruption. It is sufficiently reliable that it can be used in automation to catch leaks before they are committed. As an interactive tool, it helps explain memory growth, can identify some forms of corruption, and supplements a debugger by giving the status of various memory locations.
? zydis — Fast and lightweight x86/x86-64 disassembler library
1048 45? checkmake)
? portlint — A verifier for FreeBSD and DragonFlyBSD port directories.
? CSS Stats — Potentially interesting stats on stylesheets.
3291 458? CSScomb) — A coding style formatter for CSS. Supports own configurations to make style sheets beautiful and consistent.
CSSLint — Does basic syntax checking and finds problematic patterns or signs of inefficiency.
? GraphMyCSS.com — CSS Specificity Graph Generator.
? Nu Html Checker — Helps you catch problems in your HTML/CSS/SVG
2471 72? Parker)
? PostCSS — A tool for transforming styles with JS plugins. These plugins can lint your CSS, support variables and mixins, transpile future CSS syntax, inline images, and more.
? Project Wallace CSS Analyzer — Analytics for CSS, part of ? Project Wallace.
1767 529? sass-lint)
3659 465? scsslint) — Linter for SCSS files.
? Specificity Graph — CSS Specificity Graph Generator.
Stylelint — Linter for SCSS/CSS files.
? dotenv-linter — Linting dotenv files like a charm.
? dotenv-linter (Rust) — Lightning-fast linter for .env files. Written in Rust
8300 397? gixy) — A tool to analyze Nginx configuration. The main goal is to prevent misconfiguration and automate flaw detection.
? ansible-lint — Checks playbooks for practices and behaviour that could potentially be improved.
1308 183? AWS CloudFormation Guard) — Check local CloudFormation templates against policy-as-code rules and generate rules from existing templates.
? AzSK — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM.
2470 597? cfn-lint) — AWS Labs CloudFormation linter.
1258 211? cfn_nag) — A linter for AWS CloudFormation templates.
? checkov — Static analysis tool for Terraform files (tf>=v0.12), preventing cloud misconfigs at build time.
? cookstyle — Cookstyle is a linting tool based on the RuboCop Ruby linting tool for Chef cookbooks.
foodcritic — A lint tool that checks Chef cookbooks for common problems.
? kics — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible
31 25? metadata-json-lint) — Tool to check the validity of Puppet metadata.json files.
818 205? Puppet Lint)
? Steampunk Spotter ©️ — Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks.
? terraform-compliance — A lightweight, compliance- and security focused, BDD test framework against Terraform.
4786 507? terrascan) — Collection of security and best practice tests for static code analysis of Terraform templates.
5017 358? tflint) — A Terraform linter for detecting errors that can not be detected by terraform plan.
6739 541? tfsec) — Terraform static analysis tool that prevents potential security issues by checking cloud misconfigurations at build time and directly integrates with the HCL parser for better results. Checks for violations of AWS, Azure and GCP security best practice recommendations.
? anchore — Discover, analyze, and certify container images. A service that analyzes Docker images and applies user-defined acceptance policies to allow automated container image validation and certification
10425 1167? clair) — Vulnerability Static Analysis for Containers.
290 23? collector)
1163 164? dagda)
79 5? Docker Label Inspector)
? GitGuardian ggshield — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase.
10559 422? Haskell Dockerfile Linter) — A smarter Dockerfile linter that helps you build best practice Docker images.
? kics — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible
687 34? krane) — Krane is a simple Kubernetes RBAC static analysis tool.
It identifies potential security risks in K8s RBAC design and makes suggestions on how to mitigate them. Krane dashboard presents current RBAC security posture and lets you navigate through its definition.
? OpenSCAP — Suite of automated audit tools to examine the configuration and known vulnerabilities following the NIST-certified Security Content Automation Protocol (SCAP).
? Qualys Container Security ©️ — Container native application protection to provide visibility and control of containerized applications.
? sysdig ©️ — A secure DevOps platform for cloud and container forensics. Built on an open source stack, Sysdig provides Docker image scanning and created Falco, the open standard for runtime threat detection for containers, Kubernetes and cloud.
? Vuls — Agent-less Linux vulnerability scanner based on information from NVD, OVAL, etc. It has some container image support, although is not a container specific tool.
? actionlint — Static checker for GitHub Actions workflow files. Provides an online version.
? AzSK — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM.
? Code Climate — The open and extensible static analysis platform, for everyone.
? Codecov ©️ — Codecov is a company that provides code coverage tools for developers and engineering leaders to gain visibility into their code coverage. They offer flexible and unified reporting, seamless coverage insights, and robust coverage controls. Codecov supports over 20 languages and is CI/CD agnostic. Over 29,000 organizations and 1 million developers use Codecov. Codecov has recently joined Sentry.
? CodeRabbit ©️ — AI-powered code review tool that helps developers write better code faster. CodeRabbit provides automated code reviews, identifies security vulnerabilities, and suggests code improvements. It integrates with GitHub and GitLab.
465 10? composer-dependency-analyser) — Fast detection of composer dependency issues.
? Diffblue ©️ — Diffblue is a software company that provides AI-powered code analysis and testing solutions for software development teams. Its technology helps developers automate testing, find bugs, and reduce manual labor in their software development processes. The company's main product, Diffblue Cover, uses AI to generate and run unit tests for Java code, helping to catch errors and improve code quality.
? exakat — An automated code reviewing engine for PHP.
? GitGuardian ggshield — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase.
? Goblint — A static analyzer for the analysis of multi-threaded C programs. Its primary focus is the detection of data races, but it also reports other runtime errors, such as buffer overflows and null-pointer dereferences.
? Nitpick CI ©️ — Automated PHP code review.
? PullRequest ©️ — Code review as a service with built-in static analysis. Increase velocity and reduce technical debt through quality code review by expert engineers backed by best-in-class automation.
155 18? quality)
111 23? QuantifiedCode)
460 42? RefactorFirst) — Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first.
8053 427? Reviewdog) — A tool for posting review comments from any linter in any code hosting service.
? Symfony Insight ©️ — Detect security risks, find bugs and provide actionable metrics for PHP projects.
148 39? Violations Lib) — Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins.
1552 173? deno_lint) — Official linter for Deno. 59 29? oelint-adv) — Linter for bitbake recipes used in open-embedded and YOCTO 682 123? ERB Lint) — Lint your ERB or HTML files
340 59? htmlbeautifier) — A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates.
179 75? gherkin-lint) — A linter for the Gherkin-Syntax written in Javascript. 1666 230? Angular ESLint) — Linter for Angular projects
2395 311? Bootlint)
682 123? ERB Lint) — Lint your ERB or HTML files
66 22? grunt-bootlint) 2395 311? Bootlint), the HTML linter for Bootstrap projects.
42 8? gulp-bootlint) 2395 311? Bootlint), the HTML linter for Bootstrap projects.
2318 145? HTML Inspector)
HTML Tidy — Corrects and cleans up HTML and XML documents by fixing markup errors and upgrading legacy code to modern standards.
? HTML-Validate — Offline HTML5 validator.
340 59? htmlbeautifier) — A normaliser/beautifier for HTML that also understands embedded Ruby. Ideal for tidying up Rails templates.
? HTMLHint — A Static Code Analysis Tool for HTML.
? Nu Html Checker — Helps you catch problems in your HTML/CSS/SVG
431 201? Polymer-analyzer) — A static analysis framework for Web Components.
? jsonlint — A JSON parser and validator with a CLI. Standalone version of jsonlint.com
? Spectral — A flexible JSON/YAML linter, with out-of-the-box support for OpenAPI v2/v3 and AsyncAPI v2.
1377 218? chart-testing) — ct is the tool for testing Helm charts. It is meant to be used for linting and testing pull requests. It automatically detects charts changed against the target branch.
550 45? clusterlint) — Clusterlint queries live Kubernetes clusters for resources, executes common and platform specific checks against these resources and provides actionable feedback to cluster operators. It is a non invasive tool that is run externally. Clusterlint does not alter the resource configurations.
? Datree — A CLI tool to prevent Kubernetes misconfigurations by ensuring that manifests and Helm charts follow best practices as well as your organization’s policies
? kics — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible
42 10? klint) — A tool that listens to changes in Kubernetes resources and runs linting rules against them. Identify and debug erroneous objects and nudge objects in line with the policies as both change over time. Klint helps us encode checks and proactively alert teams when they need to take action.
687 34? krane) — Krane is a simple Kubernetes RBAC static analysis tool.
It identifies potential security risks in K8s RBAC design and makes suggestions on how to mitigate them. Krane dashboard presents current RBAC security posture and lets you navigate through its definition.
? kube-hunter — Hunt for security weaknesses in Kubernetes clusters.
157 12? kube-lint) — A linter for Kubernetes resources with a customizable rule set. You define a list of rules that you would like to validate against your resources and kube-lint will evaluate those rules against them.
3011 239? kube-linter) — KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.
? kube-score — Static code analysis of your Kubernetes object definitions.
2334 126? kubeconform) — A fast Kubernetes manifests validator with support for custom resources.
It is inspired by, contains code from and is designed to stay close to ? Kubeval, but with the following improvements:
3011 239? KubeLinter) — KubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.
? kubeval — Validates your Kubernetes configuration files and supports multiple Kubernetes versions.
ChkTeX — A linter for LaTex which catches some typographic errors LaTeX oversees.
? lacheck — A tool for finding common mistakes in LaTeX documents.
? TeXLab — A Language Server Protocol implementation for TeX/LaTeX, including lint capabilities.
? Enlightn — A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks.
5639 424? larastan) — Adds static analysis to Laravel improving developer productivity and code quality. It is a wrapper around PHPStan.
1048 45? checkmake)
? portlint — A verifier for FreeBSD and DragonFlyBSD port directories.
4891 740? markdownlint) — Node.js -based style checker and lint tool for Markdown/CommonMark files.
? mdformat — CommonMark compliant Markdown formatter
1837 230? mdl) — A tool to check Markdown files and flag style issues.
28 0? mdsf) — Format markdown code blocks using your favorite code formatters.
? remark-lint — Pluggable Markdown code style linter written in JavaScript.
? textlint — textlint is an open source text linting utility written in JavaScript.
26 10? ciocheck) pep8, pydocstyle, flake8, and pylint.
3488 310? flake8) — A wrapper around pyflakes, pycodestyle and mccabe.
? flakeheaven — flakeheaven is a python linter built around flake8 to enable inheritable and complex toml configuration.
3507 267? Go Meta Linter) golangci-lint for new projects.
3130 271? goreporter) — Concurrently runs many linters and normalises their output to a report.
28 6? multilint) flake8, isort and modernize.
1964 172? prospector) — A wrapper around pylint, pep8, mccabe and others.
Android Lint — Run static analysis on Android projects.
? android-lint-summary
1084 300? FlowDroid) — Static taint analysis tool for Android applications.
? iblessing
? Mariana Trench — Our security focused static analysis tool for Android and Java applications. Mariana Trench analyzes Dalvik bytecode and is built to run fast on large codebases (10s of millions of lines of code). It can find vulnerabilities as code changes, before it ever lands in your repository.
? Oversecured ©️ — Enterprise vulnerability scanner for Android and iOS apps. It allows app owners and developers to secure each new version of a mobile app by integrating Oversecured into the development process.
74 17? paprika)
3215 644? qark)
? redex — Redex provides a framework for reading, writing, and analyzing .dex files, and a set of optimization passes that use this framework to improve the bytecode. An APK optimized by Redex should be smaller and faster.
525 13? deadnix) — Scan Nix files for dead code (unused variable bindings)
? statix — Lints and suggestions for the Nix programming language. "statix check" highlights antipatterns in Nix code. "statix fix" can fix several such occurrences.
788 35? lockfile-lint) — Lint an npm or yarn lockfile to analyze and detect security issues
? njsscan — A static application testing (SAST) tool that can find insecure code patterns in your node.js applications using simple pattern matcher from libsast and syntax-aware semantic code pattern search tool semgrep.
? NodeJSScan — A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status.
standard — An npm module that checks for Javascript Styleguide issues.
465 10? composer-dependency-analyser) — Fast detection of composer dependency issues.? lintian — Static analysis tool for Debian packages.
135 117? rpmlint) — Tool for checking common errors in rpm packages.
35 8? promformat)
4 7? promval) — PromQL validator written in Python. It can be used to validate that PromQL expressions are written as expected.
? buf — Provides a CLI linter that enforces good API design choices and structure
588 52? protolint) — Pluggable linter and fixer to enforce Protocol Buffer style and conventions.
31 25? metadata-json-lint) — Tool to check the validity of Puppet metadata.json files. 737 86? dawnscanner) — A static analysis security scanner for ruby written web applications. It supports Sinatra, Padrino and Ruby on Rails frameworks.? AzSK — Secure DevOps kit for Azure (AzSK) provides security IntelliSense, Security Verification Tests (SVTs), CICD scan vulnerabilities, compliance issues, and infrastructure misconfiguration in your infrastructure-as-code. Supports Azure via ARM.
? brakeman — A static analysis security vulnerability scanner for Ruby on Rails applications.
328 49? Credential Digger) — Credential Digger is a GitHub scanning tool that identifies hardcoded credentials (Passwords, API Keys, Secret Keys, Tokens, personal information, etc), and filtering the false positive data through a machine learning model called ? Password Model. This scanner is able to detect passwords and non structured tokens with a low false positive rate.
? Datree — A CLI tool to prevent Kubernetes misconfigurations by ensuring that manifests and Helm charts follow best practices as well as your organization’s policies
3869 481? detect-secrets) — An enterprise friendly way of detecting and preventing secrets in code.
It does this by running periodic diff outputs against heuristically crafted regex statements, to identify whether any new secret has been committed. This way, it avoids the overhead of digging through all git history, as well as the need to scan the entire repository every time.
? Enlightn — A static and dynamic analysis tool for Laravel applications that provides recommendations to improve the performance, security and code reliability of Laravel apps. Contains 120 automated checks.
? GitGuardian ggshield — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase.
18218 1492? Gitleaks) — A SAST tool for detecting hardcoded secrets like passwords, api keys, and tokens in git repos.
2181 110? gokart) — Golang security analysis with a focus on minimizing false positives. It is capable of tracing the source of variables and function arguments to determine whether input sources are safe.
? HasMySecretLeaked ©️ — HasMySecretLeaked is a project from GitGuardian that aims to help individual users and organizations search across 20 million exposed secrets to verify if their developer secrets have leaked on public repositories, gists, and issues on GitHub projects.
? iblessing
2300 97? kani) — The Kani Rust Verifier is a bit-precise model checker for Rust.
Kani is particularly useful for verifying unsafe code blocks in Rust,
where the "unsafe superpowers" are unchecked by the compiler.
Kani verifies:
? kics — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible
? ktool — Fully cross-platform toolkit and library for MachO+Obj-C editing/analysis. Includes a cli kit, a curses GUI, ObjC header dumping, and much more.
? kube-hunter — Hunt for security weaknesses in Kubernetes clusters.
788 35? lockfile-lint) — Lint an npm or yarn lockfile to analyze and detect security issues
? LunaSec — Open Source AppSec platform that automatically notifies you the next time vulnerabilities like Log4Shell or node-ipc happen. Track your dependencies and builds in a centralized service.
? njsscan — A static application testing (SAST) tool that can find insecure code patterns in your node.js applications using simple pattern matcher from libsast and syntax-aware semantic code pattern search tool semgrep.
? NodeJSScan — A static security code scanner for Node.js applications powered by libsast and semgrep that builds on the njsscan cli tool. It features a UI with various dashboards about an application's security status.
? Oversecured ©️ — Enterprise vulnerability scanner for Android and iOS apps. It allows app owners and developers to secure each new version of a mobile app by integrating Oversecured into the development process.
? PT Application Inspector ©️ — Identifies code flaws and detects vulnerabilities to prevent web attacks. Demonstrates remote code execution by presenting possible exploits.
? Qualys Container Security ©️ — Container native application protection to provide visibility and control of containerized applications.
111 23? QuantifiedCode)
? Rezilion ©️ — Discovers vulnerabilities for all components in your environment, filters out 85% non-exploitable vulnerabilities and creates a remediation plan and open tickets to upgrade components that violate your security policy and/or patch automatically in CI.
4672 508? scorecard) — Security Scorecards - Security health metrics for Open Source
? SearchDiggity ©️ — Identifies vulnerabilities in open source code projects hosted on Github, Google Code, MS CodePlex, SourceForge, and more. The tool comes with over 130 default searches that identify SQL injection, cross-site scripting (XSS), insecure remote and local file includes, hard-coded passwords, etc.
? Steampunk Spotter ©️ — Ansible Playbook Scanning Tool that analyzes and offers recommendations for your playbooks.
? Symfony Insight ©️ — Detect security risks, find bugs and provide actionable metrics for PHP projects.
6739 541? tfsec) — Terraform static analysis tool that prevents potential security issues by checking cloud misconfigurations at build time and directly integrates with the HCL parser for better results. Checks for violations of AWS, Azure and GCP security best practice recommendations.
? trufflehog — Find credentials all over the place TruffleHog is an open source secret-scanning engine that resolves exposed secrets across your company’s entire tech stack.
8299 896? Tsunami Security Scanner) — A general purpose network security scanner with an extensible plugin system for detecting high severity RCE-like vulnerabilities with high confidence. Custom detectors for finding vulnerabilities (e.g. open APIs) can be added.
3904 744? mythril) — A symbolic execution framework with batteries included, can be used to find and exploit vulnerabilities in smart contracts automatically.
? MythX ©️ — MythX is an easy to use analysis platform which integrates several analysis methods like fuzzing, symbolic execution and static analysis to find vulnerabilities with high precision. It can be integrated with toolchains like Remix or VSCode or called from the command-line.
5406 982? slither) — Static analysis framework that runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses.
? solhint — Solhint is an open source project created by https://protofire.io. Its goal is to provide a linting utility for Solidity code.
? solium — Solium is a linter to identify and fix style and security issues in Solidity smart contracts.
23 7? LibVCS4j) — A Java library that allows existing tools to analyse the evolution of software systems by providing a common API for different version control systems and issue trackers.
460 42? RefactorFirst) — Identifies and prioritizes God Classes and Highly Coupled classes in Java codebases you should refactor first.
148 39? Violations Lib) — Java library for parsing report files from static code analysis. Used by a bunch of Jenkins, Maven and Gradle plugins.
267 237? ember-template-lint) — Linter for Ember or Handlebars templates.
318 101? haml-lint) — Tool for writing clean and consistent HAML.
210 60? slim-lint) — Configurable tool for analyzing Slim templates.
? yamllint — Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation.
? GitGuardian ggshield — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase.
? kics — Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in your infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS CloudFormation and Ansible
369 15? shisho)
50 10? dennis) — A set of utilities for working with PO files to ease development and improve quality.? HTML-Validate — Offline HTML5 validator.
? Vetur
? After the Deadline
? alex — Catch insensitive, inconsiderate writing
1964 472? codespell) — Check code for common misspellings.
? languagetool — Style and grammar checker for 25+ languages. It finds many errors that a simple spell checker cannot detect.
193 23? misspell-fixer)
? Misspelled Words In Context — A spell-checker that groups possible misspellings and shows them in their contexts.
4368 179? proselint) — A linter for English prose with a focus on writing style instead of grammar.
? vale — A syntax-aware linter for prose built with speed and extensibility in mind.
4966 190? write-good) — A linter with a focus on eliminating "weasel words".
? Spectral — A flexible JSON/YAML linter, with out-of-the-box support for OpenAPI v2/v3 and AsyncAPI v2.
? yamllint — Checks YAML files for syntax validity, key repetition and cosmetic problems such as lines length, trailing spaces, and indentation.
? commitlint — checks if your commit messages meet the conventional commit format
? GitGuardian ggshield — ggshield is a CLI application that runs in your local environment or in a CI environment to help you detect more than 350+ types of secrets, as well as other potential security vulnerabilities or policy breaks affecting your codebase.
? HasMySecretLeaked ©️ — HasMySecretLeaked is a project from GitGuardian that aims to help individual users and organizations search across 20 million exposed secrets to verify if their developer secrets have leaked on public repositories, gists, and issues on GitHub projects.
? ?? Clean code linters) — A collection of linters in github collections ? ?? Code Quality Checker Tools For PHP Projects) — A collection of PHP linters in github collections 6262 377? go-tools) — A collection of tools and libraries for working with Go code, including linters and static analysis 342 31? linters) — An introduction to static code analysis 2827 245? php-static-analysis-tools) — A reviewed list of useful PHP static analysis toolsTo the extent possible under law, ? Matthias Endler has waived all copyright and related or neighboring rights to this work. The underlying source code used to format and display that content is licensed under the MIT license.
Title image Designed by Freepik.
13455 1361? analysis-tools-dev/static-analysis)