
面向编程语言、配置、构建工具和 CI 的静态分析(SAST)工具与代码检查工具精选目录,致力于提升代码质量。
本仓库列出了适用于所有编程语言、构建工具、配置文件等的静态分析工具。重点关注能够提升代码质量的工具,例如 linter 和 formatter。 官方网站 analysis-tools.dev 基于本仓库构建,并为每个工具添加了排名、用户评论以及视频等额外资源。
如果没有赞助商的慷慨支持,本项目将无法实现。
如果你也想支持本项目,请访问我们的 GitHub Sponsors 页面。
也请查看姊妹项目 awesome-dynamic-analysis。
abaplint — 用 TypeScript 编写的 ABAP linter。
abapOpenChecks — 通过新的可自定义检查增强 SAP Code Inspector。
Polyspace for Ada ©️ — 提供代码验证,证明源代码中不存在溢出、除零、数组越界访问以及某些其他运行时错误。
SPARK ©️ — 面向 Ada 的静态分析和形式化验证工具集。
Astrée ©️ — Astrée 可自动证明 C/C++ 应用程序中不存在运行时错误和无效的并发行为。它对浮点计算是可靠的,速度非常快,并且极其精确。该分析器还会检查 MISRA/CERT/CWE/Adaptive Autosar 编码规则,并支持 ISO 26262、DO-178C A 级及其他安全标准的认证。提供 Jenkins 和 Eclipse 插件。
CBMC — 用于 C 程序的有界模型检查器,支持用户定义断言、标准断言以及多种覆盖率指标分析。
clang-tidy — 基于 Clang 的 C++ linter 工具,也具备(有限的)修复问题能力。
clazy — 基于 Clang 框架的面向 Qt 的静态代码分析器。clazy 是一个编译器插件,使 clang 能够理解 Qt 语义。你可以获得 50 多个与 Qt 相关的编译器警告,涵盖从不需要的内存分配到 API 误用,并包含用于自动重构的 fix-it。
CMetrics ⚠️ — 测量 C 文件的大小和复杂度。
codechecker — 面向 Clang Static Analyzer 的缺陷数据库和查看器扩展,带有 Web GUI。
CPAchecker — 一个用于 C 程序可配置软件验证的工具。选择 CPAchecker 这一名称是为了体现该工具基于 CPA 概念,并用于检查软件程序。
cppcheck — 对 C/C++ 代码进行静态分析。
CppDepend ©️ — 测量、查询并可视化你的代码,避免意外问题、技术债务和复杂性。
cpplint — 遵循 Google 风格指南的自动化 C++ 检查器。
cqmetrics ⚠️ — C 代码的质量指标。
CScout — C 和 C 预处理器代码的复杂度和质量指标。
ENRE-cpp ⚠️ — ENRE(ENtity Relationship Extractor)是一个用于从源代码中提取代码实体依赖或关系的工具。ENRE-cpp 是基于 @eclipse/CDT 的 C/C++ 实体关系提取器。(开发中)
ESBMC — ESBMC 是一个开源、采用宽松许可证、基于可满足性模理论的上下文有界模型检查器,用于验证单线程和多线程 C/C++ 程序。
flawfinder — 查找可能的安全弱点。
flint++ ⚠️ — flint 的跨平台、零依赖移植版本,flint 是 Facebook 开发和使用的 C++ lint 程序。
Frama-C — 一个可靠且可扩展的 C 代码静态分析器。
GCC — GCC 编译器自版本 10 起具备静态分析能力。仅当 GCC 在配置时启用了分析器支持,此选项才可用。它还可以将诊断信息以 SARIF 格式输出到 JSON 文件(自 v13 起)。
.NET Analyzers — 一个使用 .NET Compiler Platform 开发分析器(诊断和代码修复)的组织。
ArchUnitNET — 一个 C# 架构测试库,用于在 C# 中指定并断言架构规则,以实现自动化测试。
code-cracker ⚠️ — 一个用于 C# 和 VB 的分析器库,使用 Roslyn 生成重构、代码分析及其他便利功能。
CSharpEssentials ⚠️ — C# Essentials 是一组 Roslyn 诊断分析器、代码修复和重构,使使用 C# 6 语言特性更加容易。
Designite ©️ — Designite 支持检测各种架构、设计和实现坏味道,计算各种代码质量指标,并进行趋势分析。
Gendarme ⚠️ — Gendarme 检查包含 ECMA CIL 格式代码(Mono 和 .NET)的程序和库。
Infer# ⚠️ — InferSharp(也称为 Infer#)是一个面向 C# 的过程间且可扩展的静态代码分析器。借助 Facebook 的 Infer 的能力,该工具可检测空指针解引用和资源泄漏。
Meziantou.Analyzer — 一个 Roslyn 分析器,用于在 C# 中从设计、用法、安全性、性能和风格方面强制执行一些良好实践。
NDepend ©️ — 测量、查询并可视化你的代码,避免意外问题、技术债务和复杂性。
Puma Scan — Puma Scan 在开发团队使用 Visual Studio 编写代码时,为常见漏洞(XSS、SQLi、CSRF、LDAPi、加密、反序列化等)提供实时安全代码分析。
Roslynator — 一个由 Roslyn 驱动的 C# 分析器和重构集合,包含 190 多个分析器和 190 多个重构。
SonarAnalyzer.CSharp — 这些 Roslyn 分析器通过帮助你发现并修正代码库中的 bug、漏洞和代码坏味道,使你能够编写安全、可靠且可维护的整洁代码。
VSDiagnostics ⚠️ — 一组基于 Roslyn 并与 VS 集成的静态分析器。
Wintellect.Analyzers ⚠️ — .NET Compiler Platform(“Roslyn”)诊断分析器和代码修复。
Astrée ©️ — Astrée 可自动证明 C/C++ 应用程序中不存在运行时错误和无效的并发行为。它对浮点计算是可靠的,速度非常快,并且极其精确。该分析器还会检查 MISRA/CERT/CWE/Adaptive Autosar 编码规则,并支持 ISO 26262、DO-178C A 级及其他安全标准的认证。提供 Jenkins 和 Eclipse 插件。
CBMC — 用于 C 程序的有界模型检查器,支持用户定义断言、标准断言以及多种覆盖率指标分析。
clang-tidy — 基于 Clang 的 C++ linter 工具,也具备(有限的)修复问题能力。
clazy — 基于 Clang 框架的面向 Qt 的静态代码分析器。clazy 是一个编译器插件,使 clang 能够理解 Qt 语义。你可以获得 50 多个与 Qt 相关的编译器警告,涵盖从不需要的内存分配到 API 误用,并包含用于自动重构的 fix-it。
CMetrics ⚠️ — 测量 C 文件的大小和复杂度。
codechecker — 面向 Clang Static Analyzer 的缺陷数据库和查看器扩展,带有 Web GUI。
cppcheck — 对 C/C++ 代码进行静态分析。
CppDepend ©️ — 测量、查询并可视化你的代码,避免意外问题、技术债务和复杂性。
cpplint — 遵循 Google 风格指南的自动化 C++ 检查器。
cqmetrics ⚠️ — C 代码的质量指标。
CScout — C 和 C 预处理器代码的复杂度和质量指标。
ENRE-cpp ⚠️ — ENRE(ENtity Relationship Extractor)是一个用于从源代码中提取代码实体依赖或关系的工具。ENRE-cpp 是基于 @eclipse/CDT 的 C/C++ 实体关系提取器。(开发中)
ESBMC — ESBMC 是一个开源、采用宽松许可证、基于可满足性模理论的上下文有界模型检查器,用于验证单线程和多线程 C/C++ 程序。
flawfinder — 查找可能的安全弱点。
flint++ ⚠️ — flint 的跨平台、零依赖移植版本,flint 是 Facebook 开发和使用的 C++ lint 程序。
GCC — GCC 编译器自版本 10 起具备静态分析能力。仅当 GCC 在配置时启用了分析器支持,此选项才可用。它还可以将诊断信息以 SARIF 格式输出到 JSON 文件(自 v13 起)。
Helix QAC ©️ — 面向嵌入式软件的企业级静态分析。支持 MISRA、CERT 和 AUTOSAR 编码标准。
⚠️ — 一个基于 LLVM 的可靠 C/C++ 代码静态分析器。
Dart Code Metrics ⚠️ — Dart 的附加 linter。报告代码度量,检查反模式,并为 Dart 分析器提供附加规则。
effective_dart ⚠️ — 与 Effective Dart 指南对应的 Linter 规则
lint ⚠️ — 一套有主见的、社区驱动的 Dart 和 Flutter 项目 lint 规则。类似 pedantic 但更严格
Linter for dart ⚠️ — Dart 的风格 linter。
DelphiLint — 一个 Delphi IDE 包,提供即时代码分析和 linting,由 SonarDelphi 驱动。
Fix Insight ©️ — 一个免费的静态代码分析 IDE 插件。Pro 版本包含用于自动化目的的命令行工具。
Pascal Analyzer ©️ — 一个具有众多报告的静态代码分析工具。提供报告功能有限的免费 Lite 版本。
Pascal Expert ©️ — 用于代码分析的 IDE 插件。包含 Pascal Analyzer 报告功能的子集,适用于 Delphi 2007 及更高版本。
SonarDelphi — 用于 SonarQube 代码质量平台的 Delphi 静态分析器。
credo — 一个专注于代码一致性和教学的静态代码分析工具。
dialyxir — 简化在 Elixir 项目中使用 Dialyzer 的 Mix 任务。
sobelow ⚠️ — 针对 Phoenix 框架的安全聚焦静态分析。
elm-analyse ⚠️ — 一个允许你分析 Elm 代码、识别缺陷并应用最佳实践的工具。
elm-review — 分析整个 Elm 项目,专注于用 Elm 编写的可共享和自定义规则,这些规则增加了 Elm 编译器无法提供的保证。
dialyzer — DIALYZER,一个用于 ERlang 程序的差异分析器(DIscrepancy AnaLYZer)。Dialyzer 是一个静态分析工具,可识别单个 Erlang 模块或整个(组)应用程序中的软件差异,例如确定的类型错误、因编程错误而变得死代码或不可达的代码,以及不必要的测试。 Dialyzer 从调试编译的 BEAM 字节码或 Erlang 源代码开始分析。差异的文件和行号会连同差异内容的指示一起报告。Dialyzer 的分析基于成功类型(success typings)的概念,这允许可靠的警告(无误报)。
elvis — Erlang 风格审查器。
Primitive Erlang Security Tool (PEST) ⚠️ — 一个对 Erlang 源代码进行基本扫描并报告任何可能导致 Erlang 源代码不安全的函数调用的工具。
fantomas — F# 源代码格式化工具。
FSharpLint — F# 的 Lint 工具。
ionide-analyzers — 一组 F# 分析器,使用 FSharp.Analyzers.SDK 构建。
Fortitude — Fortran linter,受 Ruff 启发(并基于其构建),基于社区最佳实践。支持最新的 Fortran(2023)标准。
fprettify — 用 Python 编写的现代 Fortran 源代码自动格式化工具。 Fprettify 是一个在代码中提供一致空白、缩进和分隔符对齐的工具,包括更改字母大小写和处理预处理器指令的能力,同时保留修订历史并经过编辑器集成测试。
i-Code CNES for Fortran ⚠️ — 一个针对 Fortran 77、Fortran 90 和 Shell 的开源静态代码分析工具。
aligncheck — 查找打包效率低下的结构体。
bodyclose — 检查 HTTP 响应体是否已关闭。
deadcode ⚠️ — 查找未使用的代码。
dingo-hunter ⚠️ — 用于查找 Go 中死锁的静态分析器。
dogsled ⚠️ — 查找具有过多空白标识符的赋值/声明。
dupl — 报告可能重复的代码。
errcheck — 检查错误返回值是否被使用。
errwrap ⚠️ — 使用新的 %w 动词指令包装和修复 Go 错误。此工具分析 fmt.Errorf() 调用并报告包含与 Go v1.13 中引入的新 %w 动词指令不同的动词指令的调用。它还能够重写调用以使用新的 %w 包装动词指令。
flen — 获取 Go 包中函数长度的信息。
Go Meta Linter ⚠️ — 并发运行 Go lint 工具并规范化其输出。新项目请使用 golangci-lint。
go tool vet --shadow — 报告可能被无意遮蔽的变量。
go vet — 检查 Go 源代码并报告可疑之处。
go-consistent ⚠️ — 帮助你的 Go 程序更加一致的分析器。
go-critic — Go 源代码 linter,维护其他 linter 中当前未实现的检查。
go/ast — 包 ast 声明用于表示 Go 包语法树的类型。
goast — 基于 Go AST(抽象语法树)的静态分析工具,使用 Rego。
gochecknoglobals ⚠️ — 检查不存在全局变量。
goconst — 查找可替换为常量的重复字符串。
gocyclo — 计算 Go 源代码中函数的圈复杂度。
gofmt -s — 检查代码是否格式正确且无法进一步简化。
brittany ⚠️ — Haskell 源代码格式化工具
HLint — HLint 是一个为 Haskell 代码建议可能改进的工具。
Liquid Haskell — Liquid Haskell 是一个针对 Haskell 程序的细化类型检查器。
Stan — Stan 是一个命令行工具,用于分析 Haskell 项目并以有用的方式输出发现的漏洞及检测到问题的可能解决方案。
Weeder — 一个用于检测 Haskell 代码中死导出或包导入的工具。
Checker Framework — Java 的可插拔类型检查。这不仅仅是一个错误查找器,而是一个提供正确性保证的验证工具。它附带 27 个预构建的类型系统,并允许用户定义自己的类型系统;手册列出了 30 多个用户贡献的类型系统。
checkstyle — 检查 Java 源代码是否符合代码标准或一组验证规则(最佳实践)。
ck — 通过处理 Java 源文件计算 Chidamber 和 Kemerer 面向对象度量。
ckjm ⚠️ — 通过处理已编译 Java 文件的字节码计算 Chidamber 和 Kemerer 面向对象度量。
CogniCrypt ⚠️ — 检查 Java 源代码和字节码中加密 API 的不正确使用。
Dataflow Framework — 一个工业强度的 Java 数据流框架。Dataflow Framework 用于 Checker Framework、Google 的 Error Prone、Uber 的 NullAway、Meta 的 Nullsafe 以及其他场景。它与 Checker Framework 一起分发。
DesigniteJava ©️ — DesigniteJava 支持检测各种架构、设计和实现坏味,并计算各种代码质量度量。
Diffblue ©️ — Diffblue 是一家为软件开发团队提供 AI 驱动的代码分析和测试解决方案的软件公司。 其技术帮助开发者自动化测试、查找错误并减少软件开发过程中的手动劳动。该公司的主要产品 Diffblue Cover 使用 AI 为 Java 代码生成并运行单元测试,帮助捕获错误并提高代码质量。
Doop — Doop 是一个用于 Java/Android 程序静态分析的声明式框架,以指针分析算法为核心。Doop 提供多种分析以及端到端运行分析所需的周边脚手架(事实生成、处理、统计等)。
ENRE-java ⚠️ — ENRE(ENtity Relationship Extractor)是一个用于从源代码中提取代码实体依赖或关系的工具。ENRE-java 是一个基于 @Eclipse JDT/parser 的 Java 项目实体关系提取器。
Error Prone — 将常见的 Java 错误作为编译时错误捕获。
fb-contrib — 一个带有附加错误检测器的 FindBugs 插件。
forbidden-apis — 检测并禁止对特定方法/类/字段的调用(例如从没有字符集的文本流读取)。兼容 Maven/Gradle/Ant。
google-java-format — 重新格式化 Java 源代码以符合 Google Java Style
HuntBugs ⚠️ — 基于 Procyon Compiler Tools 的字节码静态分析器工具,旨在取代 FindBugs。
IntelliJ IDEA ©️ — 捆绑了大量针对 Java 和 Kotlin 的检查,并包含重构、格式化等工具。
aether ⚠️ — 在 node 或浏览器中,对用户 JavaScript 进行 lint、分析、规范化、转换、沙箱化、运行、单步调试和可视化。
Closure Compiler — 一个编译器工具,用于提高效率、减小体积,并在 JavaScript 文件中提供代码警告。
ClosureLinter ⚠️ — 确保项目中的所有 JavaScript 代码遵循 Google JavaScript 风格指南中的准则。它还可以自动修复许多常见错误。
complexity-report ⚠️ — 针对 JavaScript 项目的软件复杂度分析。
DeepScan ©️ — 一个 JavaScript 分析器,针对运行时错误和质量问题,而非编码约定。
es6-plato ⚠️ — 可视化 JavaScript (ES6) 源代码复杂度。
escomplex ⚠️ — 对 JavaScript 系列抽象语法树进行软件复杂度分析。
Esprima ⚠️ — 用于多用途分析的 ECMAScript 解析基础设施。
flow — 一个 JavaScript 静态类型检查器。
hegel ⚠️ — 一个 JavaScript 静态类型检查器,偏向类型推断和强类型系统。
jshint ℹ️ ⚠️ — 检测 JavaScript 代码中的错误和潜在问题,并强制执行团队的编码约定。
JSPrime ⚠️ — 静态安全分析工具。
NodeJSScan ⚠️ — 一个由 libsast 和 semgrep 驱动的 Node.js 应用程序静态安全代码扫描器,构建于 njsscan cli 工具之上。它具有一个 UI,包含关于应用程序安全状态的各种仪表板。
plato ⚠️ — 可视化 JavaScript 源代码复杂度。
Polymer-analyzer — 一个用于 Web Components 的静态分析框架。
retire.js — 扫描器,用于检测具有已知漏洞的 JavaScript 库的使用。
RSLint ⚠️ — 一个用 Rust 编写的(WIP)JavaScript linter,旨在尽可能快、可定制且易于使用。
squirrelscan — squirrelscan 是一个为 Claude Code 和 Cursor 等编码代理构建的网站 QA 工具。其 squirrel CLI 会爬取实时站点,并运行 260 多条审计规则,涵盖 SEO、性能、安全、可访问性、结构化数据和代理体验,然后返回精确的源映射修复。可从终端、CI、云端或通过 MCP 运行。
JET — 静态类型推断系统,用于检测 bug 和类型不稳定性。
StaticLint — 用于 Julia 的静态代码分析
detekt — 用于 Kotlin 代码的静态代码分析。
diktat ⚠️ — 严格的 Kotlin 编码标准,以及一个检测并自动修复代码坏味道的 linter。
ktfmt — 一个重新格式化 Kotlin 源代码以符合 Kotlin 代码约定通用社区标准的程序。 ktfmt IntelliJ 插件可从插件仓库获取。要安装它,请转到 IDE 的设置并选择 Plugins 类别。点击 Marketplace 选项卡,搜索 ktfmt 插件,然后点击 Install 按钮。
ktlint — 一个反 bikeshedding 的 Kotlin linter,内置格式化器。
luacheck — 一个用于 Lua 代码 lint 和静态分析的工具。
lualint ⚠️ — lualint 对 Lua 源代码中的全局变量使用执行基于 luac 的静态分析。
Luanalysis ⚠️ — 一个用于静态类型 Lua 开发的 IDE。
MISS_HIT ⚠️ — MISS_HIT 是一个免费、开源的代码质量工具集,适用于 MATLAB、Simulink 和 Octave。它包括 MH Style(风格检查器和格式化器)、MH Metrics(复杂度度量)、MH Lint(静态分析)、MH Trace(需求可追溯性)和 MH Copyright(版权管理)。设计为可独立运行,无需安装 MATLAB/Octave。
mlint ©️ — 检查 MATLAB 代码文件中的可能问题。
DrNim — DrNim 将 Nim 前端与 Z3 证明引擎相结合,以便验证/确认用 Nim 编写的软件。
nimfmt ⚠️ — Nim 代码格式化器 / linter / 风格检查器
Sys ⚠️ — 一个用于查找(浏览器)代码中 bug 的静态/符号工具。它使用 LLVM AST 来查找诸如未初始化内存访问之类的 bug。
VeriFast — 一个用于对单线程和多线程 C 和 Java 程序的正确性属性进行模块化形式验证的工具,这些程序带有用分离逻辑编写的前置条件和后置条件注释。为了表达丰富的规范,程序员可以定义归纳数据类型、对这些数据类型的原始递归纯函数,以及抽象分离逻辑谓词。
CakeFuzzer ⚠️ — 用于基于 CakePHP 的 Web 应用程序的 Web 应用程序安全测试工具。CakeFuzzer 采用一组预定义的攻击,这些攻击在执行前会被随机修改。利用其对 Cake PHP 框架的深入理解,Cake Fuzzer 会对所有潜在的应用程序入口点发起攻击。
churn-php — 帮助发现有价值的重构候选对象。
composer-dependency-analyser — 快速检测 composer 依赖问题。
dephpend — 依赖分析工具。
deprecation-detector ⚠️ — 查找已弃用(Symfony)代码的使用。
deptrac — 强制执行软件层之间依赖关系的规则。
DesignPatternDetector ⚠️ — 检测 PHP 代码中的设计模式。
Enlightn ⚠️ — 一个用于 Laravel 应用程序的静态和动态分析工具,提供改进 Laravel 应用性能、安全性和代码可靠性的建议。包含 120 项自动化检查。
exakat ⚠️ — 一个用于 PHP 的自动化代码审查引擎。
GrumPHP — 在每次提交时检查代码。
larastan — 为 Laravel 添加静态分析,提高开发者生产力和代码质量。它是 PHPStan 的包装器。
mago — Mago 是一个完整的 PHP 工具链,用 Rust 编写,从一开始就为最大性能而设计。
✨ 一个极快的格式化器,会根据 PER-CS 自动格式化你的代码,永远终结风格争论。 - 🔎 一个智能 linter,会在风格问题、不一致和代码坏味道成为问题之前将其捕获。 - 🔬 一个强大的静态分析器,无需你运行代码即可发现代码中的类型错误和逻辑 bug。 - 🛡️ 一个健壮的架构守卫,强制执行依赖规则和结构约定。
Mondrian ⚠️ — 一组使用图论的静态分析和重构工具。
parallel-lint — 该工具比串行检查更快地检查 PHP 文件的语法,并具有更精美的输出。
Parse ⚠️ — 一个静态安全扫描器。
pdepend — 计算 PHP 代码的软件度量,如圈复杂度。
phan — 来自 etsy 的现代静态分析器。
PHP Architecture Tester — 易于使用的 PHP 架构测试工具。
PHP Assumptions ⚠️ — 检查弱假设。
PHP Coding Standards Fixer — 根据 PSR-1、PSR-2 和 Symfony 标准等标准修复你的代码。
Perl::Analyzer ⚠️ — Perl-Analyzer 是一组程序和模块,允许用户通过提供关于命名空间及其关系、依赖、继承,以及在包中实现、继承和重新定义的方法,还有通过 SUPER 从父包调用方法的信息,来分析和可视化 Perl 代码库。
Perl::Critic — 对 Perl 源代码进行最佳实践批判。
perltidy — Perltidy 是一个 Perl 脚本,它缩进并重新格式化 Perl 脚本,使其更易于阅读。 格式可以通过命令行参数控制。默认参数设置大致遵循 Perl 风格指南中的建议。 除了重新格式化脚本外,Perltidy 还可以极大地帮助追踪缺失或多余的大括号、圆括号和方括号的错误,因为它非常擅长定位错误。
zarn — 一个用于现代 Perl 应用程序的轻量级静态安全分析工具
autoflake — Autoflake 从 Python 代码中移除未使用的导入和未使用的变量。
autopep8 — 一个自动格式化 Python 代码以符合 PEP 8 风格指南的工具。 它使用 pycodestyle 实用程序来确定代码的哪些部分需要格式化。
bandit — 一个用于查找 Python 代码中常见安全问题的工具。
bellybutton ⚠️ — 一个支持自定义项目特定规则的 lint 引擎。
Black — 不妥协的 Python 代码格式化器。
Bowler ⚠️ — 现代 Python 的安全代码重构。Bowler 是一个用于在语法树级别操作 Python 的重构工具。它支持安全、大规模地修改代码,同时保证生成的代码可以编译和运行。它既提供简单的命令行界面,也提供 Python 中的流畅 API,用于在代码中生成复杂的代码修改。
ciocheck ⚠️ — Linter、格式化器和测试套件助手。作为 linter,它是 pep8、pydocstyle、flake8 和 pylint 的包装器。
cohesion ⚠️ — 一个用于测量 Python 类内聚性的工具。
deal — Python 的契约式设计。编写无 bug 的代码。通过向代码添加一些装饰器,你可以免费获得测试、静态分析、形式验证等等。
Dlint — 一个用于确保 Python 代码安全的工具。
Dodgy ⚠️ — Dodgy 是一个非常基础的工具,可针对你的代码库运行,以搜索看起来“可疑”的值。它是一系列简单的正则表达式,旨在检测诸如意外的 SCM diff 检入,或硬编码到文件中的密码或密钥之类的内容。
ENRE-py ⚠️ — ENRE(ENtity Relationship Extractor)是一个用于从源代码中提取代码实体依赖或关系的工具。ENRE-py 是一个基于标准库 Python Language Services 的 Python 实体关系提取器。
fixit — 一个用于为源代码创建 lint 规则及相应自动修复的框架。
flake8 — pyflakes、 和 的包装器。
CodeDepends — 用于 R 的静态代码分析。
cyclocomp ⚠️ — 量化 R 函数 / 表达式的圈复杂度。
flowR — 一个用于 R 编程语言的程序切片器和数据流分析器。其切片器允许你将复杂程序缩减为仅与特定任务相关的部分(例如,生成单个或一组图表、显著性检验等)。数据流分析为你提供 R 代码语义的详细视图,可以极大地改进其他分析。要使用 flowR,请查看 Visual Studio Code 扩展、RStudio Addin、Docker 镜像或 R 包。
goodpractice — 分析 R 包的源代码并提供最佳实践建议。
lintr — 用于 R 的静态代码分析。
R Language Server — 为 R 提供代码补全、重构、折叠、诊断(使用 lintr)等功能。
rco ⚠️ — R 代码性能优化器(带 GUI)。
styler — 格式化 R 源代码文件并美化打印 R 代码。
Active Record Doctor — 在数据库问题影响生产之前识别它们。
brakeman — 用于 Ruby on Rails 应用程序的静态分析安全漏洞扫描器。
Bullet — 帮助消除 N+1 查询和未使用的预加载。
bundler-audit — 审计 Gemfile.lock 中在 Ruby Advisory Database 中报告存在安全漏洞的 gem。
cane ⚠️ — 作为构建一部分的代码质量阈值检查。
Churn ⚠️ — 一个为给定提交提供项目文件、类和方法变更频率的项目。随着时间推移,该工具会累计变更历史,给出项目生命周期中某个文件、类或方法发生变更的次数。
DatabaseConsistency ⚠️ — 用于避免数据库 schema 与应用程序模型之间不一致和低效所导致的各种问题。
dawnscanner ⚠️ — 一个用于 Ruby 编写的 Web 应用程序的静态分析安全扫描器。它支持 Sinatra、Padrino 和 Ruby on Rails 框架。
ERB Lint — 对 ERB 或 HTML 文件进行 lint
ERB::Formatter ⚠️ — 快速且精确地格式化 ERB 文件。
Fasterer ⚠️ — 常见 Ruby 惯用法检查器。
flay — Flay 分析代码的结构相似性。
flog — Flog 以易于阅读的痛苦报告形式报告最受折磨的代码。分数越高,代码越痛苦。
Fukuzatsu ⚠️ — 一个用于测量 Ruby 类文件代码复杂度的工具。其分析基于圈复杂度算法生成分数,不添加任何“主观意见”。
htmlbeautifier ⚠️ — 一个也理解嵌入式 Ruby 的 HTML 规范化/美化工具。非常适合整理 Rails 模板。
laser ⚠️ — 用于 Ruby 代码的静态分析和风格 linter。
MetricFu ⚠️ — MetricFu 是一组工具,用于提供报告,显示代码中哪些部分可能需要额外处理。
pelusa ⚠️ — 用于改进面向对象 Ruby 代码的静态分析 Lint 类工具。
quality ⚠️ — 使用社区工具对你的代码运行质量检查,并确保你的指标不会随时间恶化。
Querly ⚠️ — 基于模式的 Ruby 检查工具。
Railroader ⚠️ — 一个用于 Ruby on Rails 应用程序的开源静态分析安全漏洞扫描器。
rails_best_practices — 用于 Rails 项目的代码指标工具
C2Rust — C2Rust 帮助你迁移符合 C99 的代码到 Rust。该翻译器(或转译器)生成与输入 C 代码紧密对应的 unsafe Rust 代码。
cargo udeps — 查找 Cargo.toml 中未使用的依赖项。它要么打印一行列出这些 crate 的 "unused crates",要么打印一行说明没有未使用的 crate。
cargo-audit — 审计 Cargo.lock 中在 RustSec Advisory Database 中报告存在安全漏洞的 crate。
cargo-bloat ⚠️ — 找出可执行文件中占用空间最多的部分。支持 ELF(Linux、BSD)、Mach-O(macOS)和 PE(Windows)二进制文件。
cargo-breaking ⚠️ — cargo-breaking 比较两个不同分支之间 crate 的公共 API,显示变更内容,并根据 semver 建议下一个版本。
cargo-call-stack ⚠️ — 全程序静态栈分析。该工具以 dot 文件形式生成程序的完整调用图。
cargo-deny — 一个用于 lint 依赖项的 cargo 插件。它既可以用作命令行工具、Rust crate,也可以用作 CI 的 Github action。它检查有效的许可证信息、重复的 crate、安全漏洞等。
cargo-expand — Cargo 子命令,用于显示应用于当前 crate 的宏展开和 #[derive] 展开的结果。这是对更冗长的编译器命令的封装。
cargo-geiger — 一个用于分析 unsafe Rust 代码使用情况的 cargo 插件。提供统计输出以辅助安全审计
cargo-inspect ⚠️ — 检查去除语法糖后的 Rust 代码,以查看编译器在幕后做了什么。
cargo-semver-checks — 扫描你的 Rust crate 发布版本中的 semver 违规。它可以直接通过 CLI 使用,也可以作为 CI 中的 GitHub Action,或通过 release-plz 等发布管理器使用。它在 crates.io 上下载量前 1000 的 crate 中超过六分之一发现了 semver 违规。
cargo-show-asm — 显示为 Rust 代码生成的汇编、LLVM-IR 和 MIR 的 cargo 子命令
cargo-spellcheck — 使用 hunspell(已就绪)和 languagetool(预览)检查你所有文档的拼写和语法错误
cargo-unused-features ⚠️ — 查找潜在未使用的已启用 feature flag 并修剪它们。你可以从 json 生成简单的 HTML 报告,以便更容易检查结果。 它会移除依赖项的某个 feature,然后编译项目以查看是否仍能编译。如果可以,该 feature flag 可能可以移除,但这可能是误报。
linter-rust ⚠️ — 使用 rustc 和 cargo 在 Atom 中 lint 你的 Rust 文件。
lockbud — 静态检测 Rust 死锁 bug。它目前检测两种常见的死锁 bug:doublelock 和锁顺序冲突。它会以 JSON 格式打印 bug,并附带源代码位置和每个 bug 的解释。
MIRAI ⚠️ — 一个在 Rust 的中级中间语言上运行的抽象解释器,并基于污点分析提供警告。
prae ⚠️ — 提供一个方便的宏,允许你生成类型包装器,承诺始终维护你指定的任意不变量。
Prusti ⚠️ — 一个基于 Viper 验证基础设施的 Rust 静态验证器。默认情况下,Prusti 通过证明诸如 unreachable!() 和 panic!() 之类的语句不可达来验证不存在 panic。
Rudra — Rust 内存安全与未定义行为检测。它能够分析单个 Rust 包以及 crates.io 上的所有包。
Rust Language Server ⚠️ — 支持诸如“转到定义”、符号搜索、重新格式化和代码补全等功能,并支持重命名和重构。
rust-analyzer — 支持诸如“转到定义”、类型推断、符号搜索、重新格式化和代码补全等功能,并支持重命名和重构。
rust-audit — 审计 Rust 二进制文件中的已知 bug 或安全漏洞。其工作方式是将有关依赖树(Cargo.lock)的 JSON 格式数据嵌入到编译后可执行文件的专用链接器段中。
rustfix ⚠️ — 读取并应用 rustc(以及第三方 lint,例如 clippy 提供的那些)提出的建议。
rustfmt — 一个根据风格指南格式化 Rust 代码的工具。
RustViz — RustViz 是一个从简单 Rust 程序生成可视化的工具,帮助用户更好地理解 Rust 的生命周期和借用机制。它生成带有图形指示器的 SVG 文件,这些文件与 mdbook 集成,以渲染 Rust 程序中数据流的可视化。
TangleGuard ©️ — 帮助你理解和维护可扩展的软件架构。为此,它从源代码生成交互式、嵌套的依赖图。你可以选择详细程度,并获取对你重要的那部分代码库。
warnalyzer ⚠️ — 显示多 crate Rust 项目中未使用的代码
Bytebase — 数据库 DevSecOps 平台,内置 SQL Review 引擎,可依据 100 多条可配置规则(命名约定、反模式和安全检查)对 schema 迁移和查询进行 lint,覆盖 MySQL、PostgreSQL、Oracle、SQL Server、Snowflake 等。
dbcritic — dbcritic 查找数据库 schema 中的问题,例如表中缺少主键约束。
holistic — 超过 1,300 条规则用于分析 SQL 查询。它接收 SQL schema 定义和查询源代码,以生成改进建议。检测代码异味、未使用的索引、未使用的表、视图、物化视图等。- pgspot — 发现 postgres 扩展脚本中的漏洞。查找 PostgreSQL 扩展脚本或任何其他 PostgreSQL SQL 代码中不安全的 search_path 使用和不安全的对象创建。
sleek ⚠️ — Sleek 是一个用于格式化 SQL 的 CLI 工具。它帮助你保持 SQL 代码风格一致,提升可读性和生产力。繁重的工作由 sqlformat crate 完成。
sqlcheck ⚠️ — 自动识别 SQL 查询中的反模式。
SQLFluff — 多方言 SQL linter 和格式化工具。
sqlint — 简单的 SQL linter。
squawk — 面向 PostgreSQL 的 linter,专注于迁移。防止数据库迁移导致的意外停机,并鼓励围绕 Postgres schema 和 SQL 的最佳实践。
tsqllint — T-SQL 专用 linter。
TSqlRules ⚠️ — 用于 SQL Server 的 TSQL 静态代码分析规则。
Visual Expert ©️ — 针对 PowerBuilder、Oracle 和 SQL Server 的代码分析,探索、分析并记录代码
linter ⚠️ — Linter 是一个 Scala 静态分析编译器插件,为各种可能的 bug、低效和风格问题添加编译时检查。
Scalastyle ⚠️ — Scalastyle 检查你的 Scala 代码并指出潜在问题。
scapegoat — 用于静态代码分析的 Scala 编译器插件。
WartRemover — 一个灵活的 Scala 代码 linting 工具。
bashate ⚠️ — bash 程序的代码风格强制工具。输出格式旨在遵循 pycodestyle (pep8) 默认输出格式。
i-Code CNES for Shell ⚠️ — 一个用于 Shell 和 Fortran (77 和 90) 的开源静态代码分析工具。
kmdr ⚠️ — 用于从终端学习命令的 CLI 工具。kmdr 提供命令的分解,并解释每个属性。
sh — 一个支持 bash 的 shell 解析器、格式化和解释器;包含 shfmt
shellcheck — ShellCheck,一个为 bash/sh shell 脚本提供警告和建议的静态分析工具。
shellharden — 一个语法高亮工具,以及一个半自动将脚本重写为符合 ShellCheck 规范的工具,主要关注引号处理。
SwiftFormat — 一个用于重新格式化 Swift 代码的库和命令行格式化工具。
SwiftLint — 一个用于强制执行 Swift 风格和约定的工具。
Tailor ⚠️ — 一个用于 Apple Swift 编程语言源代码的静态分析和 lint 工具。
Frink — 一个 Tcl 格式化和静态检查程序(可以美化程序、最小化、混淆或仅做健全性检查)。
Nagelfar — 一个用于 Tcl 的静态语法检查器。
tclchecker — 一个静态语法分析模块(作为 TDK 的一部分)。
Angular ESLint — 用于 Angular 项目的 Linter
Codelyzer ⚠️ — 一组用于 Angular 2 TypeScript 项目静态代码分析的 tslint 规则。
ENRE-ts ⚠️ — ENRE (ENtity Relationship Extractor) 是一个用于从源代码中提取代码实体依赖或关系的工具。ENRE-ts 是一个基于 @babel/parser 的 ECMAScript 和 TypeScript 实体关系提取器。
fta — 基于 Rust 的 TypeScript 项目静态分析
stc ⚠️ — 用 Rust 编写的快速 TypeScript 类型检查器
tslint ⚠️ — TSLint 自 2019 年起已被弃用。请参阅此 issue了解更多详情。typescript-eslint 现在是 linting TypeScript 的最佳选择。
TSLint 是一个可扩展的静态分析工具,用于检查 TypeScript 代码的可读性、可维护性和功能性错误。它被现代编辑器和构建系统广泛支持,并可通过你自己的 lint 规则、配置和格式化器进行自定义。
tslint-clean-code ⚠️ — 一组受 Clean Code 手册启发的 TSLint 规则。
tslint-microsoft-contrib ⚠️ — 一组由 Microsoft 维护的用于 TypeScript 项目静态代码分析的 tslint 规则。
TypeScript Call Graph — 用于从你的 TypeScript 文件生成函数和调用交互式图的 CLI
TypeScript ESLint — 用于 eslint 的 TypeScript 语言扩展。
zod — 以 TypeScript 为先的 schema 验证,支持静态类型推断。目标是消除重复的类型声明。使用 Zod,你只需声明一次验证器,Zod 将自动推断静态 TypeScript 类型。将更简单的类型组合成复杂数据结构非常容易。
Icarus Verilog ⚠️ — 一个 Verilog 仿真和综合工具,通过将用 IEEE-1364 Verilog 编写的源代码编译为某种目标格式来运行
svls — 一个用于 Verilog 和 SystemVerilog 的 Language Server Protocol 实现,包含 lint 功能。
verible-linter-action ⚠️ — 借助 Verible 在 github actions 中自动进行 SystemVerilog linting。用于 lint Verilog 和 SystemVerilog 源文件,并在 Pull Requests 中自动注释有错误的代码行。
Verilator — 一个将 Verilog 转换为 C++ 或 SystemC 中周期精确行为模型的工具。执行 lint 代码质量检查。
vscode-verilog-hdl-support — 为 VS Code 提供 Verilog HDL/SystemVerilog/Bluespec SystemVerilog 支持。提供来自 Icarus Verilog、Vivado Logical Simulation、Modelsim 和 Verilator 的语法高亮和 Linting 支持
Twiggy — 分析二进制文件的调用图以剖析代码大小。目标是缩减 wasm 二进制文件大小。
wasm-language-tools — WebAssembly Language Tools 旨在提供并改善 WebAssembly Text Format 的编辑体验。它还提供开箱即用的 WebAssembly Text Format 格式化器(即 pretty printer)。
ale — 用于 Vim 和 NeoVim 的异步 Lint 引擎,支持多种语言。
Android Studio — 基于 IntelliJ IDEA,并捆绑了包括 Android Lint 在内的 Android 工具。
AppChecker ©️ — 针对 C/C++/C#、PHP 和 Java 的静态分析。
Application Inspector ©️ — 商业静态代码分析,可生成漏洞利用以验证漏洞。
ApplicationInspector — 为功能检测(例如应用中是否使用加密或版本控制)创建 400 多种规则模式的报告。
ArchUnit — 对你的 Java 或 Kotlin 架构进行单元测试。
AST Metrics — 多语言可维护性分析器。计算圈复杂度和认知复杂度、Halstead 体积、传入/传出耦合和可维护性指数,检测依赖图中的社区,并生成可探索的 HTML 报告以及 JSON、Markdown、SARIF 和 OpenMetrics 输出。单一快速二进制文件,无运行时依赖,并内置 MCP 服务器,使 AI 代理可以在重构前查询代码库结构。
ast-grep — ast-grep 是一个强大的工具,旨在使用抽象语法树 (AST) 大规模管理代码。可以把它看作 grep、eslint 和 codemod 的混合体,能够基于代码结构而非纯文本进行搜索、lint 和重写代码。 它支持多种语言,并设计为可扩展,允许你注册自定义语言。
Atom-Beautify ⚠️ — 在 Atom 编辑器中美化 HTML、CSS、JavaScript、PHP、Python、Ruby、Java、C、C++、C#、Objective-C、CoffeeScript、TypeScript、Coldfusion、SQL 等。
autocorrect — 一个 linter 和格式化工具,帮助你改进文案写作,纠正 CJK(中文、日文、韩文)之间的空格、词语和标点。
Axivion Bauhaus Suite ©️ — 追踪易出错代码位置、风格违规、克隆或死代码、循环依赖等,适用于 C/C++、C#/.NET、Java 和 Ada 83/Ada 95。
Bearer — 开源静态代码分析工具,用于发现、过滤和优先处理导致敏感数据暴露(PII、PHI、PD)的安全风险和漏洞。高度可配置且易于扩展,专为安全和工程团队打造。
Better Code Hub ©️ — Better Code Hub 根据软件质量权威 Software Improvement Group 制定的 10 条工程准则检查你的 GitHub 代码库。
Betterscan CE ⚠️ — 检查你的代码和基础设施(支持各种 Git 仓库、云栈、CLI、Web 界面平台、可用集成)的安全和质量问题。使用多种工具/扫描器进行代码扫描/SAST/Linting,并通过一份报告去重(AI 可选)。
biome — 一个面向 Web 项目的工具链,旨在提供维护它们的功能。Biome 在几分之一秒内格式化和 lint 代码。它是 Rome 的继任者。它旨在最终取代 Biome 旨在最终取代 Babel、ESLint、webpack、Prettier、Jest 等。
kics — 在你的基础设施即代码中发现安全漏洞、合规问题和基础设施错误配置。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible
Steampunk Spotter ©️ — Ansible Playbook 扫描工具,可分析你的 playbook 并提供建议。
alquitran ⚠️ — 检查 tar 归档文件,并尝试发现与 POSIX 2017 pax 规范及常见 tar 实现相关的可移植性问题。 该项目旨在供希望为尽可能多的系统提供可移植源代码归档的项目维护者使用。在发布 tar 归档文件之前使用 alquitran 进行检查,应有助于在问题到达发行版和用户之前发现它们。
packj — Packj(发音为 package)是一个命令行(CLI)工具,用于审查开源软件包中使其易受供应链攻击的“高风险”属性。这是我们大规模安全分析平台 Packj.dev 背后的工具,该平台持续审查软件包并提供免费报告。
pure ⚠️ — Pure 是一个静态分析文件格式检查器,可检查 ZIP 文件是否存在危险的压缩比、规范偏差、恶意归档签名、本地和中央目录头不匹配、有歧义的 UTF-8 文件名、目录和符号链接遍历、无效的 MS-DOS 日期、重叠头、溢出、下溢、稀疏性、意外缓冲区泄漏等。
angr — 二进制代码分析工具,也支持符号执行。
binbloom ⚠️ — 分析原始二进制固件并确定诸如字节序或加载地址等特征。该工具兼容所有架构。 加载地址:binbloom 可以解析原始二进制固件并确定其加载地址。字节序:binbloom 可以使用启发式方法确定固件的字节序。UDS 数据库:binbloom 可以解析原始二进制固件并检查其是否包含含有 UDS 命令 ID 的数组。
BinSkim — 一个二进制静态分析工具,为 Windows 可移植可执行文件提供安全性和正确性结果。
Black Duck ©️ — 用于分析源代码和二进制文件中的可复用代码、必要许可证和潜在安全问题的工具。
bloaty — 曾想知道是什么让你的二进制文件变得这么大吗?Bloaty McBloatface 将向你展示二进制文件的大小概况,以便你了解内部占用空间的是什么。Bloaty 会对二进制文件进行深入分析。使用自定义的 ELF、DWARF 和 Mach-O 解析器,Bloaty 旨在准确地将二进制文件的每个字节归因于产生它的符号或编译单元。它甚至会反汇编二进制文件以查找对匿名数据的引用。F
cargo-bloat ⚠️ — 找出你的可执行文件中占用空间最多的部分。支持 ELF(Linux、BSD)、Mach-O(macOS)和 PE(Windows)二进制文件。
cwe_checker — cwe_checker 可在二进制可执行文件中发现易受攻击的模式。
Ghidra — 由 NSA 研究局为支持网络安全任务而开发的一套软件逆向工程(SRE)工具
Goblint — 一个用于分析多线程 C 程序的静态分析器。其主要关注点是检测数据竞争,但也会报告其他运行时错误,例如缓冲区溢出和空指针解引用。
Helix QAC ©️ — 面向嵌入式软件的企业级静态分析。支持 MISRA、CERT 和 AUTOSAR 编码标准。
IKOS ⚠️ — 一个基于 LLVM 的可靠 C/C++ 代码静态分析器。
KLEE — 一个构建在 LLVM 编译器基础设施之上的动态符号执行引擎。它可以为程序自动生成测试用例,使测试用例尽可能多地覆盖程序。
LDRA ©️ — 一套工具套件,包含面向多种标准的静态分析(TBVISION),包括 MISRA C & C++、JSF++ AV、CWE、CERT C、CERT C++ 和自定义规则。
MATE ⚠️ — 一套用于交互式程序分析的工具,重点是在 C 和 C++ 代码中寻找 bug。MATE 使用代码属性图(CPG)统一了应用特定和低级漏洞分析,从而能够发现高度依赖实现细节和目标 C/C++ 程序高层语义的应用特定漏洞。
PC-lint ©️ — 面向 C/C++ 的静态分析。可在 Windows/Linux/MacOS 上原生运行。可为几乎所有平台分析代码,支持 C11/C18 和 C++17。
Phasar — 一个基于 LLVM 的静态分析框架,附带污点分析和类型状态分析。
Polyspace Bug Finder ©️ — 识别 C 和 C++ 嵌入式软件中的运行时错误、并发问题、安全漏洞及其他缺陷。
Polyspace Code Prover ©️ — 提供代码验证,证明 C 和 C++ 源代码中不存在溢出、除零、数组越界访问以及某些其他运行时错误。
scan-build — 通过常规构建来驱动内置于 Clang 的 Clang Static Analyzer 的前端。
splint — 注解辅助的静态程序检查器。
SVF — 一个静态工具,可为 C 和 C++ 程序实现可扩展且精确的过程间依赖分析。
TrustInSoft Analyzer ©️ — 穷尽式检测编码错误及其相关的安全漏洞。这包括可靠的未定义行为检测(缓冲区溢出、数组越界访问、空指针解引用、释放后使用、除零、未初始化内存访问、有符号溢出、无效指针运算等)、数据流和控制流验证,以及形式化规范的完整功能验证。支持所有 C 版本直至 C18,以及 C++ 版本直至 C++20。TrustInSoft Analyzer 将在 2023 年第二季度获得 ISO 26262 认证(TCL3)。还捆绑了 MISRA C 检查器。
vera++ ⚠️ — Vera++ 是一个可编程工具,用于 C++ 源代码的验证、分析和转换。
weggli ⚠️ — 一个快速且稳健的 C 和 C++ 代码库语义搜索工具。它旨在帮助安全研究人员在大型代码库中识别有趣的功能。
KLEE — 一个构建在 LLVM 编译器基础设施之上的动态符号执行引擎。它可以为程序自动生成测试用例,使测试用例尽可能多地覆盖程序。
LDRA ©️ — 一套工具套件,包含面向多种标准的静态分析(TBVISION),包括 MISRA C & C++、JSF++ AV、CWE、CERT C、CERT C++ 和自定义规则。
MATE ⚠️ — 一套用于交互式程序分析的工具,重点是在 C 和 C++ 代码中寻找 bug。MATE 使用代码属性图(CPG)统一了应用特定和低级漏洞分析,从而能够发现高度依赖实现细节和目标 C/C++ 程序高层语义的应用特定漏洞。
PC-lint ©️ — 面向 C/C++ 的静态分析。可在 Windows/Linux/MacOS 上原生运行。可为几乎所有平台分析代码,支持 C11/C18 和 C++17。
Phasar — 一个基于 LLVM 的静态分析框架,附带污点分析和类型状态分析。- Polyspace Bug Finder ©️ — 识别 C 和 C++ 嵌入式软件中的运行时错误、并发问题、安全漏洞及其他缺陷。
Polyspace Code Prover ©️ — 提供代码验证,证明 C 和 C++ 源代码中不存在溢出、除零、数组越界访问及其他特定运行时错误。
scan-build — 通过常规构建驱动 Clang 内置的 Clang 静态分析器的前端工具。
splint — 注解辅助的静态程序检查器。
SVF — 一种静态工具,可为 C 和 C++ 程序提供可扩展且精确的过程间依赖分析。
TrustInSoft Analyzer ©️ — 穷尽式检测编码错误及其相关的安全漏洞。这涵盖可靠的未定义行为检测(缓冲区溢出、数组越界访问、空指针解引用、释放后使用、除零、未初始化内存访问、有符号溢出、无效指针运算等)、数据流和控制流验证,以及形式化规范的完整功能验证。支持所有 C 版本直至 C18,以及 C++ 版本直至 C++20。TrustInSoft Analyzer 将于 2023 年第二季度获得 ISO 26262 认证(TCL3)。同时捆绑了 MISRA C 检查器。
vera++ ⚠️ — Vera++ 是一个可编程工具,用于 C++ 源代码的验证、分析和转换。
weggli ⚠️ — 一种快速且稳健的 C 和 C++ 代码库语义搜索工具。它旨在帮助安全研究人员在大型代码库中识别有趣的功能。
gofumpt — 强制执行比 gofmt 更严格的格式,同时保持向后兼容。也就是说,gofumpt 接受 gofmt 所接受格式的子集。
该工具是 Go 1.19 时 gofmt 的分支,需要 Go 1.18 或更高版本。它可作为格式化 Go 代码的直接替代品,在 gofumpt 之后运行 gofmt 应不产生任何更改。
gofumpt 永远不会添加与 gofmt 格式不一致的规则。因此我们扩展 gofmt 而不是与之竞争。
goimports — 检查缺失或未引用的包导入。
gokart ⚠️ — Golang 安全分析,专注于最小化误报。它能够追踪变量和函数参数的来源,以确定输入源是否安全。
GolangCI-Lint — 快速的 Go linters 运行器。它聚合多个 Go linter,并提供统一的配置、缓存和输出格式。Go Meta Linter 的替代品。
golint ⚠️ — 打印 Go 源代码中的编码风格错误。
goreporter ⚠️ — 并发运行许多 linter 并将其输出规范化为报告。
goroutine-inspect ⚠️ — 一个用于分析 Golang goroutine 转储的交互式工具。
gosec (gas) — 通过扫描 Go AST 检查源代码中的安全问题。
gotype — 类似于 Go 编译器的语法和语义分析。
govulncheck — Govulncheck 报告影响 Go 代码的已知漏洞。它使用源代码或二进制符号表的静态分析,将报告缩小到仅可能影响应用程序的漏洞。 默认情况下,govulncheck 向 https://vuln.go.dev 的 Go 漏洞数据库发出请求。对漏洞数据库的请求仅包含模块路径,不包含代码或程序的其他属性。
ineffassign ⚠️ — 检测 Go 代码中的无效赋值。
interfacer ⚠️ — 建议可使用更窄的接口。
lll ⚠️ — 报告过长的行。
maligned ⚠️ — 检测如果对其字段排序将占用更少内存的结构体。
misspell ⚠️ — 查找常见拼写错误的英文单词。
nakedret ⚠️ — 查找裸返回。
nargs ⚠️ — 查找函数声明中未使用的参数。
OSV-Scanner — 用 Go 编写的漏洞扫描器,使用 OSV.dev 提供的数据。由 Google 开发,用于跨多种语言和包管理器扫描依赖项的已知漏洞。支持容器扫描、许可证扫描和引导式修复。可与 lockfile、SBOM 和容器镜像配合使用以识别安全问题。
prealloc — 查找可能可以预分配的切片声明。
Reviewdog — 一个从任何代码托管服务中的任何 linter 发布审查评论的工具。
revive — 快速、可配置、可扩展、灵活且美观的 Go linter。golint 的直接替代品。
safesql ⚠️ — 用于 Golang 的静态分析工具,可防止 SQL 注入。
shisho ⚠️ — 一个为开发者和安全团队设计的轻量级静态代码分析器。它允许你使用类似于 sed 的直观 DSL 来分析和转换源代码,但针对的是代码。
staticcheck — Go 静态分析,专注于查找错误、简化代码和提高性能。
structcheck — 查找未使用的结构体字段。
structslop ⚠️ — 用于 Go 的静态分析器,建议结构体字段重排以提供最大的空间/分配效率
test — 显示来自标准库 testing 模块的测试失败位置。
unconvert — 检测冗余的类型转换。
unparam — 查找未使用的函数参数。
varcheck — 查找未使用的全局变量和常量。
wsl — 在正确的位置强制空行。
JArchitect ©️ — 度量、查询和可视化你的代码,避免意外问题、技术债务和复杂性。
JBMC — Java(字节码)的有界模型检查器,验证用户定义的断言、标准断言、多种覆盖率度量分析。
Mariana Trench — 我们针对 Android 和 Java 应用程序的安全聚焦静态分析工具。Mariana Trench 分析 Dalvik 字节码,专为在大型代码库(数千万行代码)上快速运行而构建。它可以在代码变更时发现漏洞,在漏洞进入你的仓库之前。
NullAway — 基于类型的空指针检查器,构建时开销低;一个 Error Prone 插件。
OWASP Dependency Check ⚠️ — 检查依赖项中已知的、公开披露的漏洞。
qulice — 组合了几个(预配置的)静态分析工具(checkstyle、PMD、Findbugs 等)。
RefactorFirst — 识别并优先排序 Java 代码库中应首先重构的上帝类和高度耦合类。
Soot — 一个用于分析和转换 Java 和 Android 应用程序的框架。- Spoon — Spoon 是一个元编程库,用于分析和转换 Java 源代码(包括 Java 9、10、11、12、13、14)。它解析源文件以构建设计良好的 AST,并提供强大的分析和转换 API。可集成到 Maven 和 Gradle 中。
SpotBugs — SpotBugs 是 FindBugs 的继任者。一个用于静态分析以查找 Java 代码中 bug 的工具。
steady ⚠️ — 分析你的 Java 应用程序中具有已知漏洞的开源依赖项,使用静态分析和测试来确定代码上下文和用法,以获得更高的准确性。
Violations Lib — 用于解析静态代码分析报告文件的 Java 库。被一系列 Jenkins、Maven 和 Gradle 插件使用。
standard ⚠️ — 一个 npm 模块,用于检查 Javascript 风格指南问题。
tern — 一个 JavaScript 代码分析器,用于深度、跨编辑器的语言支持。
TypL ⚠️ — 使用 TypL,你只需编写完全标准的 JS,该工具会通过强大的推断找出你的类型。
xo — 有主见但可配置的 ESLint 包装器,包含许多好东西。强制执行严格且可读的代码。
yardstick ⚠️ — Javascript 代码度量。
PHP Insights — 从控制台即时进行 PHP 质量检查。分析代码质量和编码风格,并概述代码架构及其复杂度。
Php Inspections (EA Extended) — 一个用于 PHP 的静态代码分析器。
PHP Refactoring Browser ⚠️ — 重构助手。
PHP Semantic Versioning Checker — 根据语义化版本控制建议下一个版本。
PHP-Parser — 一个用 PHP 编写的 PHP 解析器。
php-speller ⚠️ — PHP 拼写检查库。
PHP-Token-Reflection ⚠️ — 模拟 PHP 内部反射的库。
php7cc ⚠️ — PHP 7 兼容性检查器。
php7mar ⚠️ — 帮助开发者快速将其代码移植到 PHP 7。
PHP_CodeSniffer ⚠️ — 检测对已定义编码标准集的违反。
PHPArkitect — PHPArkitect 通过允许你在工作流中添加一些架构约束检查,帮助你保持 PHP 代码库的一致性和稳固性。你可以用简单且可读的 PHP 代码表达你想要强制执行的约束。
phpca ⚠️ — 查找非内置扩展的使用。
phpcpd ⚠️ — PHP 代码的复制/粘贴检测器。
phpdcd ⚠️ — PHP 代码的死代码检测器 (DCD)。
PhpDependencyAnalysis ⚠️ — 为项目构建依赖图。
PhpDeprecationDetector ⚠️ — 分析 PHP 代码,以搜索较新解释器版本中已弃用功能的问题。它会查找已移除的对象(函数、变量、常量和 ini 指令)、已弃用函数的功能,以及禁用名称或技巧的使用(例如较新版本中的保留标识符)。
phpdoc-to-typehint ⚠️ — 使用 PHPDoc 注释为现有 PHP 项目添加标量类型提示和返回类型。
phpDocumentor — 分析 PHP 源代码以生成文档。
phploc ⚠️ — 一个用于快速测量 PHP 项目规模并分析其结构的工具。
PHPMD — 查找代码中的可能 bug。
PhpMetrics — 计算并可视化各种代码质量度量。
phpmnd — 帮助检测魔法数字。
PHPQA — 一个用于运行 QA 工具(phploc、phpcpd、phpcs、pdepend、phpmd、phpmetrics)的工具。
phpqa - jakzal — 在一个容器中提供许多用于 PHP 静态分析的工具。
phpqa - jmolivas ⚠️ — PHPQA 一体化分析器 CLI 工具。
phpsa ⚠️ — 用于 PHP 的静态分析工具。
PHPStan — PHP 静态分析工具 - 无需运行代码即可发现代码中的 bug!
Progpilot ⚠️ — 一个用于安全目的的静态分析工具。
Psalm — 用于查找 PHP 应用程序中类型错误的静态分析工具。
Qafoo Quality Analyzer ⚠️ — 可视化度量和源代码。
rector — 对任何 PHP 5.3+ 代码进行即时升级和自动重构。它会为 PHP 7.4、8.0 及更高版本升级你的代码。Rector 承诺低误报率,因为它寻找的是狭义定义的 AST(抽象语法树)模式。主要用例是处理遗留代码中的技术债务并移除死代码。Rector 为 Symfony、Doctrine、PHPUnit 等提供了许多特殊规则。
Reflection — 用于对 PHP 项目进行静态分析的反射库
Symfony Insight ©️ — 检测安全风险、查找 bug,并为 PHP 项目提供可操作的度量。
Tuli ⚠️ — 一个静态分析引擎。
twig-lint ⚠️ — twig-lint 是一个用于你的 twig 文件的 lint 工具。
WAP — 用于检测和纠正 PHP(4.0 或更高版本)Web 应用程序中输入验证漏洞的工具,并通过结合静态分析和数据挖掘来预测误报。
pycodestylemccabeflakeheaven ⚠️ — flakeheaven 是一个围绕 flake8 构建的 python linter,支持可继承且复杂的 toml 配置。
Griffe — 整个 Python 程序的签名。提取项目的结构、框架、骨架,以生成 API 文档或查找 API 中的破坏性变更。
InspectorTiger ⚠️ — IT,Inspector Tiger,是一个现代 python 代码审查工具/框架。它附带一系列预定义处理器,会就改进和可能的 bug 向你发出警告。除了这些处理器之外,你还可以编写自己的处理器或使用社区处理器。
jedi — 用于 Python 的自动补全/静态分析库。
linty fresh ⚠️ — 解析 lint 错误,并将其作为拉取请求上的评论报告到 Github。
mbake — mbake 是一个 Makefile 格式化器和 linter。只花了 50 年!
mccabe — 检查 McCabe 复杂度。
multilint ⚠️ — flake8、isort 和 modernize 的包装器。
mypy — 一个静态类型检查器,旨在结合鸭子类型和静态类型的优点,常与 MonkeyType 一起使用。- pip-audit — 用于扫描 Python 包中已知漏洞的工具。由 Python Packaging Authority (PyPA) 开发,并得到 Trail of Bits 和 Google 的支持。扫描 Python 环境和 requirements 文件以识别存在漏洞的包并建议修复方案。支持 GitHub Actions、pre-commit 钩子以及多种漏洞服务集成。
prospector — 对 pylint、pep8、mccabe 等的封装。
py-find-injection ⚠️ — 查找 Python 代码中的 SQL 注入漏洞。
pyanalyze — 一种以编程方式检测 Python 代码中常见错误的工具,例如对未定义变量的引用和类型错误。它可以扩展以添加额外规则并执行针对特定函数的检查。
pycodestyle — (原 pep8)检查 Python 代码是否符合 PEP 8 中的某些风格约定。
pydocstyle ⚠️ — 检查是否符合 Python docstring 约定。
pyflakes ⚠️ — 检查 Python 源文件中的错误。
pylint — 查找编程错误,帮助强制执行编码标准,并嗅探一些代码异味。它还包含 pyreverse(UML 图生成器)和 symilar(相似性检查器)。
pylyzers ⚠️ — 一个用 Rust 编写的 Python 静态代码分析器 / 语言服务器,专注于类型检查和可读输出。
pyre-check — 一个快速、可扩展的类型检查器,适用于大型 Python 代码库。Pyre-check 已被其下一代迭代 Pyrefly 取代。
pyrefly — 一个快速、增量的类型检查器和 Python 语言服务器,提供代码导航、语义高亮和代码补全等 IDE 功能。
pyright — 用于 Python 的静态类型检查器,旨在弥补 mypy 等现有工具的不足。
pyroma — 评估 Python 项目对 Python 打包生态系统最佳实践的符合程度,并列出可以改进的问题。
Pysa — 一个基于 Facebook 的 pyre-check 的工具,通过污点分析识别 Python 代码中的潜在安全问题。
pyscn — 智能 Python 代码质量分析器,具有基于 CFG 的圈复杂度分析、死代码检测、克隆检测(Type 1-4)和耦合度指标。使用 tree-sitter 进行解析。用 Go 编写。
PyT - Python Taint ⚠️ — 一种用于检测 Python Web 应用程序中安全漏洞的静态分析工具。
pytype — 用于 Python 代码的静态类型分析器。
pyupgrade — 一个工具(以及 pre-commit 钩子),用于自动将语法升级到该语言的较新版本。
QuantifiedCode ⚠️ — 自动化代码审查与修复。它帮助你跟踪软件项目中的问题和指标,并且可以轻松扩展以支持新的分析类型。
radon ⚠️ — 一个从源代码计算各种指标的 Python 工具。
refurb — 一个用于翻新和现代化 Python 代码库的工具。Refurb 深受 clippy(Rust 的内置 linter)的启发。
ruff — 用 Rust 编写的快速 Python linter。比现有 linter 快 10-100 倍。兼容 Python 3.10。支持文件监视器。
Safety — Python 依赖漏洞扫描器,旨在通过检测具有已知漏洞的包来增强软件供应链安全。根据已知安全漏洞数据库检查 Python 依赖项并提供详细报告。支持 CI/CD 集成和多种输出格式。
ty — 一个用 Rust 编写的极快的 Python 类型检查器。
unimport — 一个用于查找和移除未使用 import 语句的 linter 和格式化工具。
vulture — 查找 Python 代码中未使用的类、函数和变量。
wemake-python-styleguide — 有史以来最严格、最有主见的 python linter。
wily — 一个用于归档、探索和绘制 Python 源代码复杂度的命令行工具。
xenon ⚠️ — 使用 radon 监控代码复杂度。
yapf ⚠️ — 由 Google 创建的 Python 文件格式化工具 YAPF 遵循一种独特的方法论,源自 Daniel Jasper 创建的 'clang-format' 工具。本质上,该程序会重新构建代码,使其符合风格指南的最合适格式,即使原始代码已经遵循风格指南。这个概念类似于 Go 编程语言的 'gofmt' 工具,其目标是通过在每次更改时让项目的整个代码库都经过 YAPF 处理,从而终结关于格式的争论,进而在整个项目中保持一致风格,并消除每次代码审查时关于风格的争论。
reek — Ruby 的代码异味检测器。
Roodi ⚠️ — Roodi 代表 Ruby Object Oriented Design Inferometer。它解析你的 Ruby 代码,并根据其配置的检查项警告你存在的设计问题。
RuboCop — 一个基于社区 Ruby 风格指南的 Ruby 静态代码分析器。
Rubrowser ⚠️ — Ruby 类交互式依赖图生成器。
ruby-lint ⚠️ — 用于 Ruby 的静态代码分析。
rubycritic — 一个 Ruby 代码质量报告器。
rufo — 一个有主见的 ruby 格式化工具,旨在通过命令行作为文本编辑器插件使用,在保存时或按需自动格式化文件。
Saikuro ⚠️ — 一个 Ruby 圈复杂度分析器。
SandiMeter ⚠️ — 用于检查 Ruby 代码是否符合 Sandi Metz 规则的静态分析工具。
Skunk — 一个用于 Ruby 代码的 SkunkScore 计算器——找出没有测试覆盖的最复杂代码!
Sorbet — 一个为 Ruby 设计的快速、强大的类型检查器。
Standard Ruby — Ruby 风格指南,带 linter 和自动代码修复器
Steep — Ruby 的渐进类型。
Traceroute ⚠️ — 一个 Rake 任务 gem,帮助你为 Rails 3+ 应用查找未使用的路由和控制器操作。
clippy — 一个代码 linter,用于捕获常见错误并改进你的 Rust 代码。
diff.rs — 用于渲染 Rust crate 版本之间差异的 Web 应用程序(WASM)。
dylint — 一个从动态库运行 Rust lint 的工具。Dylint 使开发者可以轻松维护自己的个人 lint 集合。
electrolysis ⚠️ — 一个通过将 Rust 程序转译为 Lean 定理证明器中的定义来形式化验证 Rust 程序的工具。
herbie ⚠️ — 当使用数值不稳定的浮点表达式时,向你的 crate 添加警告或错误。
kani — Kani Rust Verifier 是一个用于 Rust 的位精确模型检查器。 Kani 对于验证 Rust 中的 unsafe 代码块特别有用, 在这些代码块中,“unsafe 超级能力”不受编译器检查。 Kani 验证:
BlockWatch — 一个语言无关的 linter,可保持代码、文档和配置同步,并强制执行严格的格式化和验证规则。
BugProve ⚠️ ©️ — BugProve 是一个固件分析平台,兼具静态和动态分析技术,用于发现二进制代码中的内存损坏、命令注入和其他类别的常见弱点。它还能检测易受攻击的依赖项、弱加密参数、错误配置等。
callGraph ⚠️ — 静态生成调用图图像并显示在屏幕上。
CAST Highlight ©️ — 商业静态代码分析,在本地运行,但将结果上传到其云端进行展示。
Checkmarx CxSAST ©️ — 商业静态代码分析,无需预编译。
ClassGraph — 一个类路径和模块路径扫描器,用于查询或可视化类元数据或类相关性。
Clayton ©️ — 面向 Salesforce 的 AI 驱动代码审查。实时保护你的开发、强制执行最佳实践并控制技术债务。
coala ⚠️ — 用于创建代码分析的语言无关框架——默认支持 60 多种语言。
Cobra ©️ — 由 NASA 喷气推进实验室开发的结构化源代码分析器。
Codacy ©️ — 代码分析,助你更快交付更好的代码。
Code Intelligence ©️ — 与 CI/CD 无关的 DevSecOps 平台,结合行业领先的模糊测试引擎来发现 bug 并可视化代码覆盖率
Code Pathfinder — 面向安全团队的开源静态代码分析,支持跨文件数据流污点分析。专为发现漏洞、高级结构化搜索、获取洞察而构建,并支持 MCP 服务器。
Code-Graph-RAG — 使用 Tree-sitter AST 解析从多语言代码库构建知识图谱,并将其存储在 Memgraph 中。支持 11 种编程语言,采用统一图 schema,并支持对代码结构和关系进行自然语言查询和编辑。可作为 MCP 服务器用于 AI 助手集成。
Codeac ©️ — 自动化代码审查工具,可与 GitHub、Bitbucket 和 GitLab(甚至自托管)集成。适用于 JavaScript、TypeScript、Python、Ruby、Go、PHP、Java、Docker 等。(开源免费)
codeburner — 提供一个统一接口来排序并处理其发现的问题。
CodeFactor ©️ — 针对 GitHub 或 BitBucket 上仓库的自动化代码分析。
CodeFlow ©️ — 用于处理技术债务的自动化代码分析工具。与 Bitbucket 和 Gitlab 集成。(对开源项目免费)
Codemodder ⚠️ — Codemodder 是一个可插拔框架,用于构建富有表现力的 codemod。当你需要的不仅仅是 linter 或代码格式化工具时,请使用 Codemodder。用它来修复非平凡的安全问题和其他代码质量问题。
codeql — 深度代码分析——针对多种语言的语义查询和数据流,并支持 VSCode 插件。
CodeQue — 用于 JavaScript 和 TypeScript 代码结构化匹配的生态系统。提供理解代码结构的搜索工具。可作为 CLI 工具和 Visual Studio Code 扩展使用。它帮助更快、更准确地搜索代码,使你的工作流更高效。很快它将提供 ESLint 插件,让你在几分钟内创建自己的规则,以帮助确保代码库质量。
CodeRush ©️ — 在 Visual Studio 2015 及更高版本中使用 Roslyn 引擎的代码创建、调试、导航、重构、分析和可视化工具。
CodeScan ©️ — 面向 Salesforce 开发者的代码质量和安全。CodeScan 的代码分析解决方案专为 Salesforce 平台打造,为你提供代码健康状况的全面可见性。
CodeScene ©️ — CodeScene 是一个软件质量可视化工具。优先处理技术债务、检测交付风险并衡量组织方面。完全自动化。
CodeSee ©️ — CodeSee 正在映射并自动化你的应用服务、目录、文件依赖和代码变更。它就像 Google Map,但用于代码。t
CodeSonar from GrammaTech ©️ — 针对 C、C++、Java 和 C# 的高级全程序、深路径静态分析,并提供易于理解的解释以及代码和路径可视化。
Codety ⚠️ ©️ — Codety Scanner 是一个全面的源代码扫描器,内置 5000+ 静态代码分析规则,旨在检测 20+ 编程语言和 IaC 工具的代码问题。
Codiga ©️ — 支持 12+ 语言的自动化代码审查和技术债务管理平台。
Corgea ©️ — Corgea 是一个 AI 驱动的 SAST 扫描器,帮助开发者发现并修复不安全代码。它能以极低的误报率发现业务逻辑缺陷、身份验证破坏、API 漏洞等。此外,它会自动编写安全修复供其批准。Corgea 与 GitHub、GitLab、Azure DevOps、IDE 和 CLI 集成。可免费试用。
Corrode ⚠️ — 从 C 到 Rust 的半自动翻译。可以通过显示 Rust 编译器警告和错误来揭示原始实现中的 bug。已被 C2Rust 取代。
Coverity ©️ — Synopsys Coverity 支持 20 种语言和 70 多个框架,包括 Ruby on rails、Scala、PHP、Python、JavaScript、TypeScript、Java、Fortran、C、C++、C#、VB.NET。
cpp-linter-action — 一个用于 linting C/C++ 代码的 Github Action,集成 clang-tidy 和 clang-format,以线程评论和/或注释的形式收集反馈。
cqc ⚠️ — 检查 js、jsx、vue、css、less、scss、sass 和 styl 文件的代码质量。
DeepCode ⚠️ ©️ — DeepCode 已被 Snyk 收购,现在是 Snyk Code。
DeepSource ©️ — 深度静态分析,用于发现 bug 风险、安全、反模式、性能、文档和风格等垂直领域的问题。与 GitHub、GitLab 和 Bitbucket 原生集成。误报率低于 5%。
deleaker ©️ — Deleaker 是一个用于 C++、.NET 和 Delphi 的内存泄漏检测工具,可与 Visual Studio、Qt Creator 和 RAD Studio 集成,或作为独立应用程序运行。它帮助开发者高效地发现并修复内存、GDI 和句柄泄漏。
Depends — 分析 Java、C/C++、Ruby 代码元素的综合依赖关系。
DerScanner ©️ — 多语言静态应用安全测试 (SAST) 平台,可检测关键漏洞,包括硬编码密钥、弱加密、后门、SQL 注入、不安全配置等。
DevSkim — 用于 Visual Studio、VS Code 和 Sublime Text 的基于正则表达式的静态分析工具——支持 C/C++、C#、PHP、ASP、Python、Ruby、Java 等。
diesel-guard — 用于 Diesel 和 SQLx 中危险 Postgres 迁移模式的 Linter。防止不安全 schema 变更导致的停机。
dotnet-format — 用于 .NET 的代码格式化工具。如果存在 .editorconfig 文件,将从其中读取首选项,否则将使用一组默认首选项。目前 dotnet-format 能够使用受支持的 .editorconfig 选项子集格式化 C# 和 Visual Basic 项目。
Embold ©️ — 智能软件分析平台,可识别设计问题、代码问题、重复和指标。支持 Java、C、C++、C#、JavaScript、TypeScript、Python、Go、Kotlin 等。
emerge — Emerge 是一个源代码和依赖可视化工具,可用于收集有关软件项目源代码结构、指标、依赖和复杂性的洞察。扫描项目源代码后,它提供一个交互式 Web 界面,让你使用图结构探索和分析项目。
Enforster AI ©️ — Enforster AI 执行上下文代码安全 SAST,利用 LLM 和人工智能来减少并丰富对逻辑缺陷、密钥、数据泄漏、供应链和技术漏洞的检测。- ESLint — 一个可扩展的 JS linter,遵循 ECMAScript 标准。
ezno — 一个用 Rust 编写的 JavaScript 编译器和 TypeScript 检查器,专注于静态分析和运行时性能。Ezno 的类型检查器是从零开始构建的。该检查器完全兼容 TypeScript 类型注解,并且可以在完全没有类型注解的情况下工作。
Fallow — 面向 JavaScript 和 TypeScript 的 Rust 原生静态分析工具。将代码仓库映射为单一依赖图,以跨文件边界查找未使用代码和结构性问题。可通过 CLI 或 GitHub Actions 运行,并支持 VS Code、LSP、MCP 和 Node API 集成。
Find Security Bugs — 用于 Java Web 应用程序和 Android 应用程序安全审计的 SpotBugs 插件。(也适用于 Kotlin、Groovy 和 Scala 项目)
Fortify ©️ — 一个商业静态分析平台,支持扫描 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 和 XML。
Freeplane Code Explorer — Freeplane 中的 Code Explorer 模式旨在分析编译为 JVM 类文件的代码的结构和依赖关系。如果 Freeplane 正在运行,并且 ArchUnit 在测试期间检测到规则违规,它还允许直接在 Freeplane 中显示 ArchUnit 测试结果。
Goodcheck — 基于正则表达式的可定制 linter。
goone ⚠️ — 在 go 代码中查找 N+1 查询(for 循环中的 SQL 调用)
graudit — Grep 粗略审计 - 源代码审计工具。
HCL AppScan Source ©️ — 商业静态代码分析。
Hopper ⚠️ — 一个用 scala 编写的静态分析工具,适用于运行在 JVM 上的语言。
Hound CI — 在 GitHub 拉取请求中评论风格违规。支持 Coffeescript、Go、HAML、JavaScript、Ruby、SCSS 和 Swift。
imhotep ⚠️ — 对进入代码仓库的提交进行评论,并检查语法错误和一般 lint 警告。
include-gardener ⚠️ — 一个多语言静态分析器,适用于 C/C++/Obj-C/Python/Ruby,用于创建图(dot 或 graphml 格式),显示给定文件集中所有 #include 关系。
Infer — 一个用于 Java、C 和 Objective-C 的静态分析器
Inkog — AI 代理安全扫描器。检测行为漏洞(提示注入、无限循环、令牌轰炸、通过 LLM 的 SQL 注入),覆盖 11 个框架适配器,包括 LangChain、CrewAI 和 pydantic-ai。审计 MCP 服务器。将发现映射到 EU AI Act、OWASP LLM Top 10 和 NIST AI RMF。
Joern — Joern 是一个用于分析源代码、字节码和二进制可执行文件的平台。它生成代码属性图(CPG),这是一种用于跨语言代码分析的代码图表示。代码属性图存储在自定义图数据库中。这允许使用基于 Scala 的领域特定查询语言编写的搜索查询来挖掘代码。Joern 的开发目标是提供一个有用的工具,用于静态程序分析中的漏洞发现和研究。
jQAssistant — jQAssistant 是一个基于插件的软件分析平台,允许将代码结构和元数据从代码仓库扫描到 Neo4j 图数据库中。收集的数据可用于通过查询进行临时探索、可视化,或定义规则以进行持续架构验证。
jscpd — 用于编程源代码的复制/粘贴检测器。使用基于令牌的检测,在 200 多种文件格式中查找重复块——JavaScript、TypeScript、Python、Java、C#、C/C++、Go、Rust、PHP、Ruby 等。支持可配置阈值和忽略模式、git blame 集成,以及用于 console、HTML、JSON、Markdown、SARIF 和徽章的 reporter。可通过 CLI、CI 流水线或作为库运行;由 MegaLinter 和 Codacy 捆绑。
keploy — Keploy 是一个开源测试平台,帮助开发人员自动化并简化测试流程。它提供 API 和集成测试代理,为实际可用的 API 生成测试、mock/stub。此外,Keploy 还提供 AI 驱动的单元测试代理,可直接在您的 GitHub PR 和 VSCode 中生成稳定、有用的单元测试,帮助捕获错误并提高代码质量。
Kiuwan ©️ — 在极速、协作的环境中识别并修复网络威胁,并与您的 SDLC 无缝集成。支持 Python、C\C++、Java、C#、PHP 等。
Klocwork ©️ — 面向 C/C++、Java 和 C# 的质量与安全静态分析。
LangLint — 面向 20 多种文件类型的代码注释和文档字符串的自动翻译平台。消除国际软件协作中的语言障碍。支持 100 多种语言对,并具有语法保护。像 Ruff 一样集成到 CI/CD 流水线中。通过并发处理速度提高 10-20 倍。
LGTM ©️ — 使用 CodeQL 查询对源代码查找安全漏洞、变体和关键代码质量问题。自动 PR 代码审查;对开源免费。前身为 semmle。它支持托管在 Bitbucket Cloud、GitHub.com、GitLab.com 上的公共 Git 仓库。
lizard — Lizard 是一个可扩展的圈复杂度分析器,适用于许多编程语言,包括 C/C++(不需要所有头文件或 Java 导入)。它还进行复制粘贴检测(代码克隆检测/代码重复检测)以及许多其他形式的静态代码分析。统计不含注释的代码行数、CCN(圈复杂度数值)、函数的令牌数、函数的参数数。
Mega-Linter — Mega-Linter 凭借其 70 多个内置 Linter 可以处理任何类型的项目, 其高级报告功能,可在任何 CI 系统或本地运行, 并提供辅助安装和配置,能够应用格式化和修复
Mobb ©️ — Mobb 是一个值得信赖的自动漏洞修复工具,可保护应用程序、减少安全积压,并让开发人员专注于创新。Mobb 对开源项目免费。
MOPSA — 一个静态分析器,旨在轻松地在差异很大的语言(如 C 和 Python)之间复用抽象域。
nestjs-doctor — 面向 NestJS 应用程序的静态分析工具。通过 30 多条内置规则检测安全、性能、正确性和架构方面的反模式。输出 0-100 的健康评分。包括模块图可视化、端点依赖图和数据库模式分析。提供 CLI 和 VS Code 扩展。
Neurolint-CLI — 使用 AST 解析和基于规则的转换的确定性代码转换工具。 自动修复 50 多个问题,包括可访问性违规、hydration 错误、 React 19/Next.js 16 迁移和配置更新。具有 5 步故障安全 编排,以确保零破坏性更改。专为 React、Next.js 和 TypeScript 项目而设计。
oclint — 一个静态源代码分析工具,用于提高 C、C++ 和 Objective-C 的质量并减少缺陷。
Offensive 360 ©️ — 商业静态代码分析系统,不需要构建源代码或预编译。
Offensive360 ©️ — Offensive360 是一个应用安全平台,结合了 SAST(跨 60 多种语言的污点/数据流分析)、DAST、SCA、移动应用扫描(Android/iOS)、恶意软件/二进制分析和许可证合规。发现结果包括完整的从源到汇的追踪和安全代码示例。可作为 SaaS 部署,也可作为自托管虚拟设备部署,用于离线/气隙网络。支持 SARIF 输出;CI/CD(GitHub Actions、GitLab、Jenkins、Azure DevOps)和 IDE 集成。
OpenRewrite — OpenRewrite 修复常见的静态分析问题,这些问题通过 Sonar 和其他工具报告,使用 Maven 和 Gradle 插件或 Moderne CLI。
OpenStaticAnalyzer — OpenStaticAnalyzer 是一个源代码分析器工具,可以对复杂系统的源代码执行深度静态分析。
oxc — Oxidation Compiler 正在创建一套用 Rust 重写的 JavaScript / TypeScript 语言高性能工具。
parasoft ©️ — 用于单元测试、API 测试和 Web UI 测试的自动化软件测试解决方案。符合 MISRA、OWASP 等标准。
pfff — Facebook 的工具,用于许多语言的代码分析、可视化或保持风格的源代码转换。
Pixee ©️ — Pixeebot 在您的代码中查找安全和代码质量问题,并创建带有推荐修复的可合并拉取请求。
PMD — 一个用于 Java、Salesforce Apex、Javascript、PLSQL、XML、XSL 等的源代码分析器。
pre-commit — 一个用于管理和维护多语言 pre-commit 钩子的框架。
Precaution — Precaution 是一个静态分析安全工具(SAST),旨在生产之前发现源代码中潜在的关键漏洞。它以 CLI、GitHub Action 和 GitHub App 的形式提供。
Prettier — 一个固执己见的代码格式化工具。
Pronto — 对您的更改进行快速自动代码审查。支持 40 多个针对各种语言的 runner,包括 Clang、Elixir、JavaScript、PHP、Ruby 等。
PT.PM ⚠️ — 一个用于在源代码中搜索模式的引擎,基于 Unified AST 或 UST。目前支持 C#、Java、PHP、PL/SQL、T-SQL 和 JavaScript。模式可以在代码中描述,也可以使用 DSL 描述。
Putout — 可插拔且可配置的代码转换器,内置 eslint、babel 插件支持,适用于 js、jsx typescript、flow、markdown、yaml 和 json。
PVS-Studio ©️ — 一个(对 FOSS 和个人开发者有条件免费)的 C、C++、C# 和 Java 代码静态分析工具。出于宣传目的,您可以提议一个大型 FOSS 项目由 PVS 员工进行分析。支持 CWE 映射、OWASP ASVS、MISRA、AUTOSAR 和 SEI CERT 编码标准。
pylama ⚠️ — 用于 Python 和 JavaScript 的代码审计工具。封装了 pycodestyle、pydocstyle、PyFlakes、Mccabe、Pylint 等
Qwiet AI ©️ — 在漏洞进入生产环境之前识别您代码库独有的漏洞。利用代码属性图(CPG)在单个图的图中并发运行其分析。自动发现开发中的业务逻辑缺陷,如硬编码密钥和逻辑炸弹
Refactoring Essentials ⚠️ — 免费的 Visual Studio 2015 扩展,用于 C# 和 VB.NET 重构,包括代码最佳实践分析器。
relint — 一个静态文件 linter,允许您使用正则表达式(RegEx)编写自定义规则。
Repowise — 确定性、零 LLM 的代码健康分析。根据 25 个标记为每个文件的缺陷风险、可维护性和性能评分 1-10:McCabe 复杂度、LCOM4 内聚性、上帝类、Rabin-Karp 克隆检测、变更熵和未测试热点。添加依赖图、死代码检测、git 历史信号(churn、ownership、co-change)以及具体的图感知重构计划。以 CLI、MCP 服务器和 VS Code 扩展的形式发布,覆盖 15 种语言。
ReSharper ©️ — 通过针对 C#、VB.NET、ASP.NET、JavaScript、TypeScript 和其他技术的即时代码检查扩展 Visual Studio。
Rev-dep — 面向现代 JavaScript 和 TypeScript 项目的依赖分析和优化工具包。追踪导入、识别循环依赖、查找未使用代码、清理 node modules。
RIPS ©️ — 一个用于 PHP 脚本中漏洞的静态源代码分析器。
Roslyn Analyzers — 基于 Roslyn 的 FxCop 分析器实现。
Roslyn Security Guard ⚠️ — 专注于识别潜在漏洞的项目,例如 SQL 注入、跨站脚本(XSS)、CSRF、加密弱点、硬编码密码等。
SafeQL — 从 PostgreSQL 中的原始 SQL 查询验证并自动生成 TypeScript 类型。SafeQL 是一个 ESLint 插件,用于以类型安全的方式编写 SQL 查询。
SAST Online ©️ — 彻底检查 Android 源代码,以发现并解决潜在的安全问题和漏洞。在线静态应用安全测试(静态代码分析)工具
Scrutinizer ⚠️ ©️ — 一个专有的代码质量检查器,可与 GitHub 集成。
Security Code Scan ⚠️ — 用于 C# 和 VB.NET 的安全代码分析器。检测各种安全漏洞模式:SQLi、XSS、CSRF、XXE、Open Redirect 等。集成到 Visual Studio 2015 及更新版本。检测各种安全漏洞模式:SQLi、XSS、CSRF、XXE、Open Redirect 等。
sem — 语义版本控制 CLI,在 git 之上提供实体级 diff、blame 和影响分析。使用 tree-sitter 解析 26 种语言,并构建具有结构哈希的跨文件依赖图。命令包括 sem diff、sem blame、sem graph 和 sem impact,用于代码更改的爆炸半径分析。
Semgrep — 一个快速、开源的静态分析工具,用于在编辑器、提交和 CI 时查找错误并强制执行代码标准。其规则看起来像您已经编写的代码;无需抽象语法树或正则表达式搏斗。支持 17 种以上语言。
Semgrep Supply Chain ©️ — 快速查找并修复高优先级安全问题。Semgrep Supply Chain 优先处理可从您的代码访问的 2% 漏洞。
Seqra — 面向 Java 和 Kotlin Web 应用程序的安全聚焦静态分析器。使用 Semgrep 风格的 YAML 规则和 CodeQL 级数据流(具有一流的 Spring 支持)分析字节码,以发现仅源代码扫描器遗漏的漏洞。
ShiftLeft Scan ⚠️ — Scan 是一个免费的开源 DevSecOps 平台,用于检测源代码和依赖项中的安全问题。它支持广泛的语言和 CI/CD 流水线。注意:ShiftLeft 于 2023 年更名为 Qwiet AI,随后于 2025 年 9 月被 Harness 收购。此开源项目不再维护。
shipshape ⚠️ — 静态程序分析平台,允许自定义分析器通过通用接口插入。
Sigrid ©️ — Sigrid 通过衡量系统的代码质量帮助您改进软件,然后将结果与数千个行业系统的基准进行比较,为您提供有关可改进领域的具体建议。
Similarity Tester — 一个查找文件之间或文件内部相似性的工具,以支持您发现 DRY 原则违规。
Skylos — 面向 Python、TypeScript 和 Go 的死代码检测、安全扫描、密钥检测和代码质量分析。具有 98% 召回率的框架感知分析。包括 CI/CD GitHub Action、VS Code 扩展和用于 AI 代理集成的 MCP 服务器。
Snyk Code ©️ — Snyk Code 基于 AI 查找安全漏洞。其分析速度使我们能够实时分析您的代码,并在您点击 IDE 中的保存按钮时提供结果。支持的语言包括 Java、JavaScript、Python、PHP、C#、Go 和 TypeScript。与 GitHub、BitBucket 和 Gitlab 集成。可免费试用,并且是 Snyk 平台的一部分,该平台还涵盖 SCA、容器和 IaC。
SonarQube Cloud ©️ — SonarQube Cloud 使您的团队能够通过易于集成到云 DevOps 平台并扩展您的 CI/CD 工作流的代码审查工具,持续高效地交付干净代码。SonarQube Cloud 提供免费计划。
SonarQube for IDE — SonarQube for IDE(前身为 SonarLint)是一个免费的 IDE 扩展,适用于 IntelliJ、VS Code、Visual Studio 和 Eclipse,可实时查找并修复编码问题,在您编码时标记问题,就像拼写检查器一样。它不仅仅是 linter,还提供丰富的上下文指导,帮助开发人员理解为什么存在问题、评估风险,并教育他们如何修复。
SonarQube Server — SonarQube 通过深度集成到您的企业环境中的代码质量和安全解决方案为开发团队赋能;使您能够持续可靠地部署干净代码。SonarQube 提供免费开源的 Community Build。
Sonatype ©️ — 报告常见依赖项中的已知漏洞,并推荐更新的包以最大程度减少破坏性更改
Soto Platform ©️ — 一套静态分析工具,由三个组件组成:Sotoarc(架构分析)、Sotograph(质量分析)和 Sotoreport(质量报告)。帮助发现架构与实现之间的差异、接口违规(例如外部访问子系统的私有部分、检测所有通过循环关系强耦合的类、文件、包和子系统等)。Sotograph 产品系列在 Windows 和 Linux 上运行。
SourceMeter ©️ — 面向 C/C++、Java、C#、Python 以及 RPG III 和 RPG IV 版本(包括 free-form)的静态代码分析。
sqlvet — 对 Go 代码库中的原始 SQL 查询执行静态分析,以揭示潜在的运行时错误。它检查 SQL 语法错误,识别可能导致 SQL 注入的不安全查询,确保 INSERT 语句中的列数与值数匹配,并验证表和列名。- StaticReviewer ©️ — Static Reviewer 根据最相关的安全编码标准、OWASP、CWE、CVE、CVSS、MISRA、CERT,对 40 多种编程语言执行代码检查,使用 1000 多条内置验证规则进行安全性、死代码和最佳实践检查。提供软件成分分析(SCA)模块,用于发现开源和第三方库中的漏洞。
Super-Linter — 多个 linter 的组合,可作为 GitHub Action 安装。
Svace ©️ — 适用于 Java、C、C++、C#、Go 的静态代码分析工具。
Synopsys ©️ — 一个商业静态分析平台,可扫描多种语言(C/C++、Android、C#、Java、JS、PHP、Python、Node.JS、Ruby、Fortran 和 Swift)。
Teamscale ©️ — 支持 25 种以上语言并可直接集成 IDE 的静态和动态分析工具。可应请求为开源项目提供免费托管。提供免费学术许可证。
TencentCodeAnalysis — 腾讯云代码分析(简称 TCA,早期公司内部代号 CodeDog)是一个综合性的代码分析和问题跟踪平台。TCA 由三个组件组成:服务端、Web 端和客户端。它集成了多个自研工具,还支持动态集成各种编程语言的代码分析工具。
thailint — 多语言 linter,针对在 AI 生成代码中异常频繁出现的反模式:跨文件重复代码块、过度嵌套、魔法数字、单一职责违规,以及未经说明就添加的 linter 抑制。通过一份配置覆盖 Python、TypeScript、JavaScript 和 Rust,为每条规则提供 pre-commit 钩子,并输出 text、JSON 或 SARIF 供 CI 使用。
ThreatMapper — 面向容器、无服务器和主机的运行时漏洞扫描器和风险评估工具。ThreatMapper 从依赖项和操作系统包生成运行时 BOM,与多个威胁情报源进行匹配,扫描未受保护的机密,并根据严重性和利用风险对问题进行评分。
todocheck — 用于将带注释的 TODO 与你的问题跟踪器集成的 linter
trivy — 一个简单而全面的容器及其他制品漏洞扫描器,适用于 CI。Trivy 可检测操作系统包(Alpine、RHEL、CentOS 等)和应用程序依赖项(Bundler、Composer、npm、yarn 等)的漏洞。可检查容器和文件系统。
trunk ©️ — 现代代码仓库包含许多技术,每种技术都有自己的 linter 集合。凭借 30 多个且仍在增加的 linter,Trunk 让识别、安装、配置和运行适合你所有仓库的正确 linter、静态分析器和格式化工具变得极其简单。
TscanCode ⚠️ — 腾讯提供的快速、准确的 C/C++、C#、Lua 代码静态分析解决方案。使用 GPLv3 许可证。
Undebt ⚠️ — 与语言无关的工具,基于简单的模式定义进行大规模、自动化、可编程的重构。
Understand ©️ — 代码可视化工具,为 Ada、VHDL 等提供代码分析、标准测试、度量、图形化、依赖分析等功能。
Unibeautify — 带有 GitHub 应用的通用代码美化工具。支持 HTML、CSS、JavaScript、TypeScript、JSX、Vue、C++、Go、Objective-C、Java、Python、PHP、GraphQL、Markdown 等。
Upsource ©️ — 面向 Java、PHP、JavaScript 和 Kotlin 的代码审查工具,具有静态代码分析和代码感知导航功能。
Veracode ©️ — 无需源代码即可发现二进制文件和字节码中的缺陷。支持所有主流编程语言:Java、.NET、JavaScript、Swift、Objective-C、C、C++ 等。
Wakaru — JavaScript 反编译器,可将打包、压缩、转译后的生产代码还原为可读模块。可解包 webpack、esbuild、Metro、Browserify、SystemJS 和 AMD/UMD 打包产物,然后还原压缩器产物以及 Babel/TypeScript/SWC 辅助代码(async/await、类、可选链等)。使用 Rust 编写;可作为 CLI 运行,也可通过 WebAssembly 完全在浏览器中运行。
WALA — 面向 Java 字节码及相关语言以及 JavaScript 的静态分析能力。
weave — 面向 git 的实体级语义合并驱动程序。可解决基于行的合并中当独立更改触及同一文件时产生的误报冲突。通过 tree-sitter 解析函数和类,按名称匹配,并在实体级别进行合并。在 31 个场景的测试套件中,基准测试显示其干净合并率为 100%,而 git 为 48%。
WhiteHat Application Security Platform ©️ — WhiteHat Scout(面向开发者)与 WhiteHat Sentinel Source(面向运维)相结合,支持 WhiteHat Top 40 和 OWASP Top 10。
Wotan ⚠️ — 可插拔的 TypeScript 和 JavaScript linter。
Xygeni ©️ — Xygeni 是一个全面的软件供应链安全平台。它提供带有 AI 驱动修复的高级 SAST、具有实时恶意软件检测的软件成分分析(SCA)、基础设施即代码(IaC)扫描以及机密检测,以确保端到端的代码安全。