Logo

#静态分析

Logo of gptlint
gptlint
GPTLint利用大语言模型(LLMs)在代码库中应用高级最佳实践,超过传统静态分析工具如ESLint。它支持自定义和项目专用规则以及内容缓存,兼容主要LLM提供商和本地模型,提供详尽的运行统计。目前,仅支持JS/TS和单文件上下文,不支持自动修复。
Logo of seahorn
seahorn
SeaHorn是一个基于LLVM的开源软件验证和分析框架。它集成了抽象解释、指针分析、约束求解等多种技术,可用于检测程序错误、生成反例和推导不变式。SeaHorn采用模块化设计,提供可组合的分析组件,适用于各类自动化验证研究。该框架支持多种编码方式和分析精度,能够灵活应对不同的验证需求。
Logo of compose-rules
compose-rules
compose-rules为Jetpack Compose开发提供静态分析规则集,支持ktlint和detekt工具。该项目旨在提升大型团队采用Compose的效率,通过检测常见问题优化代码质量。规则集涵盖Compose开发中的多种陷阱,为开发者提供及时的错误提示和编码指导。
Logo of gigahorse-toolchain
gigahorse-toolchain
Gigahorse是一个开源的以太坊智能合约反编译和分析工具链。它将低级EVM代码转换为类似LLVM IR的高级三地址表示。该工具提供多种上下文敏感性配置,支持函数内联,可与各类客户端分析工具集成。Gigahorse为智能合约研究和安全分析奠定了基础,已在多个学术项目和实时分析平台中得到应用。
Logo of View8
View8
View8是一款静态分析工具,专门用于反编译序列化的V8字节码(JSC文件)。通过使用修补的V8二进制文件,View8能够解析和反汇编这些字节码,生成可读性强的类JavaScript代码。工具支持多个V8版本,提供命令行接口,允许用户选择多种输出格式。View8还能自动检测字节码版本,为开发者简化了反编译过程。
Logo of pybind11-stubgen
pybind11-stubgen
pybind11-stubgen是一个为Python扩展模块生成类型存根文件的开源工具。它可自动创建存根文件,帮助静态分析工具和IDE更好地理解和处理二进制扩展。虽然针对pybind11编译的模块进行了优化,但也适用于其他库构建的模块。通过命令行操作,开发者可以生成存根文件,提高Python项目的开发效率和代码质量。
Logo of monitors4codegen
monitors4codegen
Monitor-Guided Decoding (MGD)是一种创新的代码生成方法,利用静态分析指导语言模型解码。该方法无需额外训练即可提高350M至175B参数规模模型生成代码的编译成功率。项目提供多语言静态分析工具multilspy,支持Java、Rust、C#和Python代码分析,并包含数据集、评估脚本和推理结果,便于复现研究成果。
Logo of phpat
phpat
这是一款易于使用的静态分析工具,用于验证PHP代码的架构要求,支持用户使用自然语言定义和检查代码的架构规则。适合开发人员在日常使用和项目中的架构治理。需要注意,0.x.x版本可能会有不兼容的变更,直到稳定的1.0.0版本发布。
Logo of type-guard
type-guard
type-guard是Pinkary Project的一个开源模块,用于PHP变量类型的缩小和断言。它提供type函数进行对象类型检查,支持PHPStan和Psalm静态分析。该库包含多种类型断言方法,如asInt()和asString(),有助于增强PHP代码的类型安全性。
Logo of refurb
refurb
Refurb是一款用于优化和现代化Python代码库的开源工具。它能智能分析代码结构,识别可改进的部分,并给出具体建议,协助开发者编写更简洁、易读的代码。Refurb提供多种检查规则,支持通过命令行或配置文件自定义。其插件系统允许用户扩展功能。Refurb适用于新旧项目,有助于提高代码质量和可维护性。
Logo of slither
slither
Slither是一个开源的智能合约静态分析框架,支持Solidity和Vyper语言。它能够检测常见漏洞,生成合约报告,并允许开发自定义分析。Slither具有低误报、快速分析、易于集成等特点,可帮助开发者提高代码质量,增强对合约的理解。该工具支持Solidity 0.4及以上版本,平均分析时间不到1秒。
Logo of ezno
ezno
ezno 是一个 JavaScript 编译器和 TypeScript 检查工具,采用 Rust 语言开发。该项目注重静态分析和运行时性能,提供类型安全检查和命令行接口。ezno 实现了命令式类型系统,能够追踪函数和控制流结构的副作用。作为一个快速、轻量的开源项目,ezno 通过深度静态分析探索类型检查、优化和编译的新方法。
Logo of codechecker
codechecker
CodeChecker是基于LLVM/Clang的静态代码分析工具,提供命令行C/C++分析和Web报告管理功能。它支持多种分析器,可自动分析GCC交叉编译项目,并支持增量分析。其Web应用可视化代码缺陷,支持结果过滤和比较,集成Gerrit和GitLab。CodeChecker还能可视化多种编程语言的分析结果,是一款通用的代码质量保证工具。
Logo of ast-grep
ast-grep
ast-grep是一个基于抽象语法树的代码搜索和重构工具。它支持多种编程语言,提供类似jQuery的API进行AST遍历和操作。通过直观的模式匹配语法,ast-grep可用于大规模代码分析和修改。该工具具有高性能、跨平台特性,适用于代码重构、静态分析和自定义lint规则开发等场景。
Logo of phpstorm-attributes
phpstorm-attributes
phpstorm-attributes项目为PhpStorm提供了一套PHP 8属性,用于增强代码完成和静态分析功能。这些属性包括Deprecated、ArrayShape、ObjectShape、Immutable、Pure、ExpectedValues、NoReturn和Language,能够帮助开发者更准确地定义和分析代码结构。通过使用这些属性,开发者可以提高代码质量,优化开发体验,从而提升PHP编程的效率和准确性。
Logo of CodeAnalysis
CodeAnalysis
TCA是一个开源的综合代码分析和问题追踪平台,集成多种分析工具。支持Java、C++等主流编程语言,可发现代码质量问题、规范缺陷和安全漏洞。平台提供代码检查、度量功能,支持DevOps集成,并开放API便于系统对接。TCA有助于团队持续监控和改进代码质量,适用于各类软件开发项目。
Logo of eslint-plugin-import-x
eslint-plugin-import-x
eslint-plugin-import-x是一个ESLint插件,专注于ES2015+模块语法的检查和优化。它能够检测文件路径和导入名称的拼写错误,确保模块导入的准确性。该插件提供多种规则,包括警告提示、模块系统检查、静态分析和代码风格指南,有助于开发者更好地利用ES2015+静态模块语法,提升代码质量。
Logo of pydocstyle
pydocstyle
pydocstyle是一个静态分析工具,用于检查Python文档字符串的规范性。该工具支持大部分PEP 257规范,适用于Python 3.6及以上版本。尽管pydocstyle项目已正式停止维护,但其为Python社区贡献的价值仍然显著。目前,官方推荐用户迁移到功能更全面的Ruff工具。pydocstyle的开发历程和社区参与对Python生态系统的完善产生了积极影响。
Logo of periphery
periphery
Periphery是一款识别Swift项目中未使用代码的开源工具。它能分析项目结构,找出未引用的声明、未使用的函数参数和冗余协议等。支持Xcode和Swift Package Manager项目,可通过Homebrew或Mint安装。Periphery提供命令行界面和Xcode集成,帮助开发者清理代码。其分析范围涵盖函数参数、协议、枚举和属性等多个方面,适用于Swift项目代码优化。
Logo of nilaway
nilaway
NilAway是一款静态分析工具,专门用于在编译时检测Go代码中的nil指针异常。它无需额外注释,能够跨包分析nil流,并提供详细错误报告。NilAway以低开销和高精度著称,适合大型Go项目使用。该工具支持独立运行,也可与golangci-lint和Bazel/nogo集成,为开发者提供灵活的使用方式。
Logo of SwiftLint
SwiftLint
SwiftLint是一款自动化执行Swift代码风格和规范的开源工具,借鉴GitHub Swift风格指南。通过Clang和SourceKit分析源代码AST,提供精准检查结果。支持Swift Package Manager、Homebrew等多种安装方式,可集成至Xcode、VS Code和CI/CD流程,提高代码质量和一致性。
Logo of checkstyle
checkstyle
Checkstyle是一个开源的Java源代码检查工具,用于验证代码是否符合指定的编码标准和规则。该工具有助于保持代码风格一致性,提升代码质量。Checkstyle支持自定义规则配置,可与多种持续集成工具集成,并提供完善的文档。它的灵活性和功能性使其成为Java项目代码质量管理的有力工具。
Logo of pyre-check
pyre-check
Pyre是一款符合PEP 484标准的高性能Python类型检查器,能对大规模代码库进行增量分析,为开发者提供即时反馈。项目还包含Pysa,一个基于Pyre的安全导向静态分析工具。Pyre支持Python 3.8及以上版本,安装配置简便。通过命令行接口,Pyre能快速检测类型错误,有助于提升代码质量和安全性。
Logo of rust-clippy
rust-clippy
Clippy是Rust语言的静态代码分析工具,提供超过700个lint规则,用于检测常见错误和优化代码。它可作为cargo子命令运行,支持自动修复建议。Clippy将规则分类,允许用户按需调整lint级别。此外,Clippy支持自定义配置和指定最低兼容的Rust版本。作为开源项目,Clippy为Rust开发者提供了有力的代码质量保障工具。
Logo of vermin
vermin
Vermin是一款开源的Python代码分析工具,专门用于检测程序所需的最低Python版本。通过解析抽象语法树和匹配内部规则,它可以识别Python 2.0-2.7和3.0-3.12的语言特性。Vermin能够分析模块、类、函数等多种语言元素,内置了3796条检测规则。此外,它还提供配置文件、多进程分析、lint模式等功能,有助于开发者管理Python项目的版本兼容性。