該儲存庫列出了所有程式語言的靜態分析工具、建置工具、設定檔等。重點是提高程式碼品質的工具,例如 linter 和格式化程式。官方網站analysis-tools.dev基於此儲存庫,並為每個工具添加了排名、用戶評論和影片等附加資源。
如果沒有贊助商的慷慨支持,這個計畫就不可能實現。
如果您也想支持這個項目,請造訪我們的 Github 贊助頁面。
非常歡迎請求請求!
另請查看姊妹專案 Awesome-dynamic-analysis。
abaplint — ABAP 的 Linter,以 TypeScript 寫。
abapOpenChecks — 透過新的可自訂檢查增強 SAP Code Inspector。
Codepeer ©️ — 偵測執行時間和邏輯錯誤。
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 的誤用,包括用於自動重構的修復。
CMetrics — 測量 C 檔案的大小和複雜度。
CPAchecker — 用於 C 程式的可設定軟體驗證的工具。選擇 CPAchecker 這個名稱是為了反映工具是基於 CPA 概念,用於檢查軟體程式。
cppcheck — C/C++ 程式碼的靜態分析。
CppDepend ©️ — 測量、查詢和視覺化您的程式碼,避免意外問題、技術債和複雜性。
cpplint — 遵循 Google 風格指南的自動 C++ 檢查器。
cqmetrics — C 碼的品質指標。
CScout — C 和 C 預處理器程式碼的複雜性和品質指標。
ENRE-cpp — ENRE(實體關係提取器)是一個用於從原始程式碼中提取程式碼實體依賴關係或關係的工具。 ENRE-cpp 是一個基於 @eclipse/CDT 的 C/C++ 實體關係提取器。 (開發中)
ESBMC — ESBMC 是一種開源、許可許可、上下文受限的模型檢查器,基於可滿足性模理論,用於驗證單執行緒和多執行緒 C/C++ 程式。
探傷儀
燧石++
Frama-C — 一個健全且可擴展的 C 程式碼靜態分析器。
GCC — GCC 編譯器從版本 10 起就具有靜態分析功能。它還可以將其診斷資訊輸出到 SARIF 格式的 JSON 檔案(從 v13 開始)。
Goblint — 用於分析多執行緒 C 程式的靜態分析器。它的主要重點是檢測資料競爭,但它也報告其他運行時錯誤,例如緩衝區溢位和空指標取消引用。
Helix QAC ©️ — 嵌入式軟體的企業級靜態分析。支援 MISRA、CERT 和 AUTOSAR 編碼標準。
IKOS — 基於 LLVM 的 C/C++ 程式碼健全靜態分析器。
Joern — 基於程式碼屬性圖的 C/C++ 開源程式碼分析平台
KLEE — 建構在 LLVM 編譯器基礎架構之上的動態符號執行引擎。它可以自動為程式產生測試案例,以便測試案例盡可能執行程式。
LDRA ©️ — 一個工具套件,包括符合各種標準的靜態分析 (TBVISION),包括 MISRA C & C++、JSF++ AV、CWE、CERT C、CERT 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 年第二季 (TCL3) 獲得 ISO 26262 資格。也捆綁了 MISRA C 檢查器。
維拉++
.NET 分析器 — 使用 .NET 編譯器平台開發分析器(診斷與程式碼修復)的組織。
ArchUnitNET — AC# 架構測試庫,用於在 C# 中指定和斷言架構規則以進行自動化測試。
code-cracker — C# 和 VB 的分析器庫,使用 Roslyn 進行重構、程式碼分析和其他細節。
CSharp 精華
Designite ©️ — Designite 支援檢測各種架構、設計和實現氣味,計算各種程式碼品質指標以及趨勢分析。
Gendarme — Gendarme 檢查包含 ECMA CIL 格式(Mono 和 .NET)程式碼的程式和函式庫。
推斷#
Meziantou.Analyzer — Roslyn 分析器,用於在 C# 中實施設計、使用、安全、性能和風格方面的一些良好實踐。
NDepend ©️ — 測量、查詢和視覺化您的程式碼,避免意外問題、技術債和複雜性。
Puma Scan — 當開發團隊在 Visual Studio 中編寫程式碼時,Puma Scan 為常見漏洞(XSS、SQLi、CSRF、LDAPi、加密、反序列化等)提供即時安全程式碼分析。
Roslynator — 由 Roslyn 提供支援的 190 多個分析器和 190 多個 C# 重構的集合。
SonarAnalyzer.CSharp — 這些 Roslyn 分析器可協助您尋找並修正程式碼庫中的錯誤、漏洞和程式碼異味,從而產生安全、可靠且可維護的乾淨程式碼。
VS診斷
Wintellect.Analyzers — .NET 編譯器平台(「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 的誤用,包括用於自動重構的修復。
CMetrics — 測量 C 檔案的大小和複雜度。
cppcheck — C/C++ 程式碼的靜態分析。
CppDepend ©️ — 測量、查詢和視覺化您的程式碼,避免意外問題、技術債和複雜性。
cpplint — 遵循 Google 風格指南的自動 C++ 檢查器。
cqmetrics — C 碼的品質指標。
CScout — C 和 C 預處理器程式碼的複雜性和品質指標。
ENRE-cpp — ENRE(實體關係提取器)是一個用於從原始程式碼中提取程式碼實體依賴關係或關係的工具。 ENRE-cpp 是一個基於 @eclipse/CDT 的 C/C++ 實體關係提取器。 (開發中)
ESBMC — ESBMC 是一種開源、許可許可、上下文受限的模型檢查器,基於可滿足性模理論,用於驗證單執行緒和多執行緒 C/C++ 程式。
探傷儀
燧石++
Frama-C — 一個健全且可擴展的 C 程式碼靜態分析器。
Helix QAC ©️ — 嵌入式軟體的企業級靜態分析。支援 MISRA、CERT 和 AUTOSAR 編碼標準。
IKOS — 基於 LLVM 的 C/C++ 程式碼健全靜態分析器。
Joern — 基於程式碼屬性圖的 C/C++ 開源程式碼分析平台
KLEE — 建構在 LLVM 編譯器基礎架構之上的動態符號執行引擎。它可以自動為程式產生測試案例,以便測試案例盡可能執行程式。
LDRA ©️ — 一個工具套件,包括符合各種標準的靜態分析 (TBVISION),包括 MISRA C & C++、JSF++ AV、CWE、CERT C、CERT 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 年第二季 (TCL3) 獲得 ISO 26262 資格。也捆綁了 MISRA C 檢查器。
維拉++
ameba — Crystal 的靜態程式碼分析工具。
crystal — Crystal 編譯器具有內建的 linting 功能。
Dart 代碼指標
effective_dart——與Effective Dart中的指南相對應的Linter規則
皮棉
Linter for dart — Dart 的樣式 linter。
DelphiLint — 一個 Delphi IDE 包,提供即時程式碼分析和 linting,由 SonarDelphi 提供支援。
Fix Insight ©️ — 用於靜態程式碼分析的免費 IDE 外掛程式。專業版包括用於自動化目的的命令列工具。
Pascal Analyzer ©️ — 具有大量報告的靜態程式碼分析工具。提供免費的Lite版本,但報告有限。
Pascal Expert ©️ — 用於程式碼分析的 IDE 外掛程式。包括 Pascal 分析器報告功能的子集,適用於 Delphi 2007 及更高版本。
SonarDelphi — 用於 SonarQube 程式碼品質平台的 Delphi 靜態分析器。
credo — 一種靜態程式碼分析工具,專注於程式碼一致性和教學。
dialyxir — 混合任務以簡化 Elixir 專案中 Dialyzer 的使用。
sobelow — Phoenix 框架的以安全為中心的靜態分析。
榆樹分析
elm-review — 分析整個 Elm 項目,重點關注用 Elm 編寫的可共享和自訂規則,這些規則添加了 Elm 編譯器無法提供的保證。
dialyzer — DIALYZER,用於 ERlang 程式的差異分析器。 Dialyzer 是一個靜態分析工具,可識別單個 Erlang 模組或整個(群組)應用程式中的軟體差異,例如明確的類型錯誤、由於程式錯誤而死亡或無法存取的程式碼以及不必要的測試。 Dialyzer 從調試編譯的 BEAM 字節碼或 Erlang 原始碼開始分析。報告差異的文件和行號以及差異的內容指示。 Dialyzer 的分析是基於成功打字的概念,它允許發出聲音警告(無誤報)。
elvis — Erlang 風格評論家。
Primitive Erlang Security Tool (PEST) — 一種對 Erlang 原始程式碼進行基本掃描並報告任何可能導致 Erlang 原始程式碼不安全的函數呼叫的工具。
fantomas — F# 原始碼格式化程式。
FSharpLint — F# 的 Lint 工具。
ionide-analyzers — F# 分析器的集合,使用 FSharp.Analyzers.SDK 建構。
fprettify — 現代 Fortran 原始碼的自動格式化程序,以 Python 編寫。 Fprettify 是一個在程式碼中提供一致的空格、縮排和分隔符號對齊的工具,包括更改字母大小寫和處理預處理器指令的能力,同時保留修訂歷史記錄並測試編輯器整合。
i-Code CNES for Fortran — 適用於 Fortran 77、Fortran 90 和 Shell 的開源靜態程式碼分析工具。
aligncheck — 尋找效率低下的打包結構。
bodyclose — 檢查 HTTP 回應正文是否已關閉。
deadcode — 尋找未使用的程式碼。
野狗獵人
dogsled — 尋找具有太多空白標識符的賦值/宣告。
雙重
errcheck — 檢查是否使用了錯誤回傳值。
errwrap — 使用新的 %w 動詞指令包裝並修復 Go 錯誤。此工具分析 fmt.Errorf() 呼叫並報告包含與 Go v1.13 中引入的新 %w 動詞指令不同的動詞指令的呼叫。它還能夠重寫呼叫以使用新的 %w 換行動詞指令。
flen — 取得 Go 套件中函數長度的資訊。
去元短絨golangci-lint
用於新專案。
go tool vet --shadow — 報告可能被無意隱藏的變數。
go vet — 檢查 Go 原始碼並報告可疑情況。
go-consistent — 幫助您讓 Go 程式更加一致的分析器。
go-critic — Go 原始碼 linter,維護目前在其他 linter 中未實現的檢查。
go/ast — 套件 ast 聲明了用來表示 Go 套件語法樹的類型。
山羊
gochecknoglobals
goconst — 尋找可以用常數取代的重複字串。
戈塞洛
gofmt -s — 檢查程式碼格式是否正確且無法進一步簡化。
gofumpt — 強制執行比gofmt
更嚴格的格式,同時向後相容。也就是說, gofumpt
對gofmt
滿意的格式子集感到滿意。該工具是 Go 1.19 版本的gofmt
的一個分支,需要 Go 1.18 或更高版本。它可以用作格式化 Go 程式碼的直接替代品,並且在 gofumpt 之後運行 gofmt 應該不會產生任何變化。 gofumpt
永遠不會加入與gofmt
格式不一致的規則。所以我們擴展gofmt
而不是與之競爭。
goimports — 檢查遺失或未引用的套件匯入。
gokart - Golang 安全分析,重點是最大限度地減少誤報。它能夠追蹤變數和函數參數的來源,以確定輸入來源是否安全。
GolangCI-Lint — Go Meta Linter
的替代品:GolangCI-Lint 是一個 linters 聚合器。
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 程式碼中無效的分配。
介面器
lll
被誹謗的
拼字錯誤 — 尋找常見拼字錯誤的英文單字。
bareret — 尋找裸收益。
nargs — 尋找函數宣告中未使用的參數。
prealloc — 尋找可能被預先指派的切片聲明。
Reviewdog — 用於發布來自任何程式碼託管服務中的任何 linter 的評論評論的工具。
revive — 快速、可設定、可擴充、靈活且漂亮的 Go 語言檢查器。 golint 的直接替代品。
安全SQL
志翔
staticcheck — 專門用於尋找錯誤、簡化程式碼和提高效能的靜態分析。
structcheck — 尋找未使用的結構欄位。
structslop - Go 的靜態分析器,建議結構欄位重新排列以提供最大的空間/分配效率
test — 顯示 stdlib 測試模組中測試失敗的位置。
取消轉換
unparam — 尋找未使用的函數參數。
varcheck — 尋找未使用的全域變數和常數。
wsl — 在正確的位置強制執行空白行。
布列塔尼
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。
資料流框架 — 用於 Java 的工業級資料流框架。 Dataflow Framework 用於 Checker Framework、Google 的 Error Prone、Uber 的 NullAway、Meta 的 Nullsafe 以及其他上下文。它與 Checker 框架一起分發。
DesigniteJava ©️ — DesigniteJava 支援偵測各種架構、設計和實作氣味以及計算各種程式碼品質指標。
Diffblue ©️ — Diffblue 是一家軟體公司,為軟體開發團隊提供人工智慧驅動的程式碼分析和測試解決方案。其技術可協助開發人員自動化測試、尋找錯誤並減少軟體開發過程中的體力勞動。該公司的主要產品 Diffblue Cover 使用 AI 生成和運行 Java 程式碼的單元測試,有助於捕獲錯誤並提高程式碼品質。
Doop — Doop 是一個用於 Java/Android 程式靜態分析的宣告式框架,以指標分析演算法為中心。 Doop 提供了各種各樣的分析以及周圍的鷹架來運行端到端分析(事實生成、處理、統計等)。
ENRE-java — ENRE(實體關係提取器)是一個用於從原始程式碼中提取程式碼實體依賴關係或關係的工具。 ENRE-java 是一個基於 @Eclipse JDT/parser 的 Java 專案的 ENtity 關係擷取器。
容易出錯 — 將常見的 Java 錯誤捕獲為編譯時錯誤。
fb-contrib — FindBugs 的插件,附有額外的錯誤偵測器。
禁止 apis — 偵測並禁止呼叫特定方法/類別/欄位(例如從沒有字元集的文字流中讀取)。 Maven/Gradle/Ant 相容。
google-java-format — 重新格式化 Java 原始碼以符合 Google Java 風格
獵蟲
IntelliJ IDEA ©️ — 捆綁了許多針對 Java 和 Kotlin 的檢查,並包含用於重構、格式化等的工具。
JArchitect ©️ — 測量、查詢和視覺化您的程式碼,避免意外問題、技術債和複雜性。
JBMC — Java(字節碼)的有界模型檢查器,驗證使用者定義的斷言、標準斷言、多種覆蓋率度量分析。
馬裡亞納海溝 — 我們針對 Android 和 Java 應用程式的安全靜態分析工具。 Mariana Trench 分析 Dalvik 字節碼,旨在在大型程式碼庫(數十百萬行程式碼)上快速運行。它可以在程式碼更改時發現漏洞,然後再將其放入儲存庫。
NullAway — 基於類型的空指標檢查器,建置時間開銷較低;一個容易出錯的插件。
OWASP 依賴項檢查 — 檢查相依性是否有已知的、公開揭露的漏洞。
qulice — 結合了一些(預先配置的)靜態分析工具(checkstyle、PMD、Findbugs...)。
RefactorFirst — 識別並優先考慮 Java 程式碼庫中您應該先重構的上帝類別和高度耦合類別。
Soot — 用於分析和轉換 Java 和 Android 應用程式的框架。
Spoon — Spoon 是一個元程式庫,用於分析和轉換 Java 原始碼(包括 Java 9、10、11、12、13、14)。它解析原始檔案以建立具有強大分析和轉換 API 的精心設計的 AST。可以整合到 Maven 和 Gradle 中。
SpotBugs — SpotBugs 是 FindBugs 的繼承者。一種靜態分析工具,用於尋找 Java 程式碼中的錯誤。
stable — 分析您的 Java 應用程式是否存在已知漏洞的開源依賴項,同時使用靜態分析和測試來確定程式碼上下文和使用情況,以提高準確性。
Violations Lib — 用於從靜態程式碼分析中解析報告檔案的 Java 程式庫。被大量 Jenkins、Maven 和 Gradle 插件使用。
醚
Closure Compiler — 一種編譯器工具,可提高效率、減少大小並在 JavaScript 檔案中提供程式碼警告。
閉包檢查器
複雜性報告
DeepScan ©️ — JavaScript 分析器,針對執行時間錯誤和品質問題,而不是編碼約定。
es6-柏拉圖
綜合體
埃斯普里瑪
flow — JavaScript 的靜態型別檢查器。
hegel - JavaScript 的靜態型別檢查器,偏向型別推斷和強型別系統。
jshint — 偵測 JavaScript 程式碼中的錯誤和潛在問題並強制執行團隊的編碼約定。
JSLint — JavaScript 程式碼品質工具。
JSPrime
NodeJSScan — 用於 Node.js 應用程式的靜態安全程式碼掃描器,由 libsast 和 semgrep 提供支持,建構於 njsscan cli 工具之上。它具有一個 UI,其中包含有關應用程式安全狀態的各種儀表板。
柏拉圖
Polymer-analyzer — Web 元件的靜態分析架構。
retire.js — 掃描器偵測具有已知漏洞的 JavaScript 程式庫的使用情況。
RSLint
標準 - 檢查 Javascript 樣式指南問題的 npm 模組。
tern — 一個 JavaScript 程式碼分析器,提供深入的跨編輯器語言支援。
典型值L
xo - 固執己見但可配置的 ESLint 包裝器,包含許多好東西。強制執行嚴格且可讀的程式碼。
尺度
JET — 用於偵測錯誤和型別不穩定性的靜態型別推斷系統。
StaticLint — Julia 的靜態程式碼分析
detekt — Kotlin 程式碼的靜態程式碼分析。
diktat — Kotlin 的嚴格編碼標準以及檢測和自動修復代碼異味的 linter。
ktfmt — 重新格式化 Kotlin 原始碼以符合 Kotlin 程式碼約定的通用社群標準的程式。 ktfmt IntelliJ 外掛程式可從外掛程式儲存庫中取得。要安裝它,請前往 IDE 的設定並選擇插件類別。點擊 Marketplace 選項卡,搜尋 ktfmt 插件,然後點擊 Install 按鈕。
ktlint — 具有內建格式化程式的防自行車脫落 Kotlin linter。
luacheck — 用於 Lua 程式碼的 linting 和靜態分析的工具。
lualint — lualint 對 Lua 原始碼中的全域變數使用進行基於 luac 的靜態分析。
盧分析
DrNim — DrNim 將 Nim 前端與 Z3 證明引擎結合,以便驗證 / 確認以 Nim 編寫的軟體。
nimfmt — Nim 程式碼格式化程式/linter/樣式檢查器
Sys - 用於尋找(瀏覽器)程式碼中的錯誤的靜態/符號工具。它使用 LLVM AST 來查找諸如未初始化記憶體存取之類的錯誤。
VeriFast — 用於對單執行緒和多執行緒 C 和 Java 程式的正確性屬性進行模組化形式驗證的工具,以分離邏輯編寫的前置條件和後置條件進行註解。為了表達豐富的規範,程式設計師可以定義歸納資料型別、這些資料型別上的原始遞歸純函數、抽象分離邏輯謂詞。
CakeFuzzer — 用於基於 CakePHP 的 Web 應用程式的 Web 應用程式安全測試工具。 CakeFuzzer 採用一組預先定義的攻擊,這些攻擊在執行前會隨機修改。利用對 Cake PHP 框架的深入了解,Cake Fuzzer 對所有潛在的應用程式入口點發動攻擊。
churn-php — 幫助發現重構的良好候選人。
Composer-dependency-analysisr — 快速偵測 Composer 依賴問題。
dephpend — 依賴分析工具。
deprecation-Detector — 尋找已棄用 (Symfony) 程式碼的用法。
deptrac — 強制執行軟體層之間依賴關係的規則。
DesignPatternDetector — 偵測 PHP 程式碼中的設計模式。
EasyCodingStandard — 結合 PHP_CodeSniffer 和 PHP-CS-Fixer。
Enlightn - Laravel 應用程式的靜態和動態分析工具,提供提高 Laravel 應用程式的效能、安全性和程式碼可靠性的建議。包含 120 項自動檢查。
exakat — PHP 的自動程式碼審查引擎。
GrumPHP — 檢查每次提交的代碼。
larastan — 為 Laravel 新增靜態分析,提升開發人員的工作效率和程式碼品質。它是 PHPStan 的包裝器。
蒙德里安
Nitpick CI ©️ — 自動 PHP 程式碼審查。
parallel-lint — 此工具檢查 PHP 檔案的語法比串列檢查更快,輸出更精美。
Parse — 靜態安全掃描器。
pdepend — 計算軟體指標,例如 PHP 程式碼的圈複雜度。
phan — etsy 的現代靜態分析器。
PHP Architecture Tester — 易於使用的 PHP 架構測試工具。
PHP 假設 — 檢查弱假設。
PHP 編碼標準修復程式 — 依照 PSR-1、PSR-2 和 Symfony 標準等標準修復您的程式碼。
PHP Insights — 從控制台進行即時 PHP 品質檢查。分析程式碼品質和編碼風格以及程式碼架構及其複雜性概述。
Php Inspections (EA Extended) — PHP 靜態程式碼分析器。
PHP 重構瀏覽器 — 重構助理。
PHP 語意版本檢查器
PHP-Parser — 用 PHP 寫的 PHP 解析器。
php-speller — PHP 拼字檢查函式庫。
PHP 令牌反射
php7cc
php7mar
PHP_CodeSniffer — 偵測對一組定義的編碼標準的違反。
PHPArkitect — PHPArkitect 允許在您的工作流程中添加一些架構約束檢查,從而幫助您保持 PHP 程式碼庫的連貫性和可靠性。您可以用簡單易讀的 PHP 程式碼來表達您想要強制執行的約束。
phpca
phpcpd
phpdcd
Php依賴分析
PhpDeprecationDetector — PHP 程式碼分析器,用於搜尋較新解譯器版本中已棄用功能的問題。它會尋找已刪除的物件(函數、變數、常數和 ini 指令)、已棄用的函數功能以及禁止名稱或技巧的使用(例如,新版本中的保留識別碼)。
phpdoc 到類型提示
phpDocumentor — 分析 PHP 原始碼以產生文件。
phploc — 快速測量 PHP 專案大小和分析結構的工具。
PHPMD — 尋找程式碼中可能存在的錯誤。
PhpMetrics — 計算並視覺化各種程式碼品質指標。
phpmnd — 幫助偵測幻數。
PHP品質保證
phpqa - jakzal — 在一個容器中進行 PHP 靜態分析的多種工具。
phpqa - jmolivas — PHPQA 一體化分析器 CLI 工具。
phpsa
PHPStan — PHP 靜態分析工具 - 無需運行即可發現程式碼中的錯誤!
Progpilot — 用於安全目的的靜態分析工具。
Psalm — 用於尋找 PHP 應用程式中類型錯誤的靜態分析工具。
Qafoo品質分析儀
ector — 任何 PHP 5.3+ 程式碼的即時升級和自動重構。它將您的程式碼升級為 PHP 7.4、8.0 及更高版本。 Rector 承諾較低的誤報率,因為它尋找狹義定義的 AST(抽象語法樹)模式。主要用例是解決遺留程式碼中的技術債並刪除死程式碼。 Rector 為 Symfony、Doctrine、PHPUnit 等提供了一組特殊規則。
Reflection — 用於 PHP 專案進行靜態分析的反射庫
Symfony Insight ©️ — 偵測安全風險、找出錯誤並提供 PHP 專案可操作的指標。
Tuli — 靜態分析引擎。
twig-lint — twig-lint 是一個針對 twig 檔案的 lint 工具。
WAP — 用於偵測和修正 PHP(4.0 或更高版本)Web 應用程式中的輸入驗證漏洞的工具,並透過結合靜態分析和資料探勘來預測誤報。
Perl::Analyzer — Perl-Analyzer 是一組程式和模組,允許使用者透過提供有關命名空間及其關係、依賴關係、繼承以及包中實現、繼承和重新定義的方法的資訊來分析和視覺化 Perl 程式碼庫透過SUPER 從父包呼叫方法。
Perl::Critic — 批評 Perl 原始碼以獲得最佳實踐。
perltidy — Perltidy 是一個 Perl 腳本,它可以縮排並重新格式化 Perl 腳本以使其更易於閱讀。可以使用命令列參數控制格式。預設參數設定大致遵循 Perl 樣式指南中的建議。除了重新格式化腳本之外,Perltidy 還可以在追蹤缺少或多餘大括號、圓括號和方括號的錯誤方面提供很大幫助,因為它非常擅長定位錯誤。
zarn — 現代 Perl 應用程式的輕量級靜態安全分析工具
autoflake — Autoflake 從 Python 程式碼中刪除未使用的匯入和未使用的變數。
autopep8 — 自動格式化 Python 程式碼以符合 PEP 8 風格指南的工具。它使用 pycodestyle 實用程式來決定程式碼的哪些部分需要格式化。
bandit — 一種尋找 Python 程式碼中常見安全性問題的工具。
bellybutton — 支援自訂專案特定規則的 linting 引擎。
Black — 毫不妥協的 Python 程式碼格式化程式。
Bowler — 現代 Python 的安全程式碼重構。 Bowler 是一個用於在語法樹層級操作 Python 的重構工具。它支援安全、大規模的程式碼修改,同時確保產生的程式碼可以編譯和運行。它提供了簡單的命令列介面和流暢的Python API,用於在程式碼中產生複雜的程式碼修改。
西奧檢查pep8
、 pydocstyle
、 flake8
和pylint
的包裝器。
凝聚
deal — 透過 Python 合約設計。編寫無錯誤的程式碼。透過在程式碼中添加一些裝飾器,您可以獲得免費測試、靜態分析、形式驗證等等。
Dlint — 確保 Python 程式碼安全的工具。
Dodgy — Dodgy 是一個非常基本的工具,可以針對您的程式碼庫運行以搜尋看起來「狡猾」的值。它是一系列簡單的正規表示式,旨在檢測諸如意外的 SCM 差異簽入、硬編碼到檔案中的密碼或金鑰等情況。
ENRE-py
fixit — 用於為原始程式碼建立 lint 規則和對應自動修復的框架。
flake8 — pyflakes
、 pycodestyle
和mccabe
的包裝。
flakeheaven — flakeheaven 是一個圍繞 flake8 構建的 python linter,以實現可繼承和復雜的 toml 配置。
Griffe — 整個 Python 程式的簽章。提取專案的結構、框架和骨架,以產生 API 文件或查找 API 中的重大變更。
虎探長
jedi — Python 自動完成/靜態分析函式庫。
linty fresh — 解析 lint 錯誤並將其作為拉取請求的評論報告給 Github。
mccabe — 檢查 McCabe 的複雜性。
多絨毛flake8
的包裝, isort
與modernize
。
mypy — 靜態類型檢查器,旨在結合鴨子類型和靜態類型的優點,經常與 MonkeyType 一起使用。
prospector — pylint
、 pep8
、 mccabe
等的包裝器。
py-find-注入
pyanalyze — 一種以程式方式偵測 Python 程式碼中常見錯誤的工具,例如對未定義變數的參考和型別錯誤。它可以擴展以添加額外的規則並執行特定於特定功能的檢查。
PyCodeQual ©️ — PyCodeQual 讓您深入了解複雜性和錯誤風險。它會為您的拉取請求添加自動審查。
pycodestyle —(以前稱為pep8
)根據 PEP 8 中的一些樣式約定檢查 Python 程式碼。
pydoc風格
pyflakes — 檢查 Python 原始檔是否有錯誤。
pylint — 尋找程式錯誤,幫助執行編碼標準並嗅聞一些程式碼異味。它還包括pyreverse
(一個UML圖產生器)和symilar
(一個相似性檢查器)。
pylyzers — Python 的靜態程式碼分析器/語言伺服器,以 Rust 編寫,專注於類型檢查和可讀輸出。
Pyre-check — 適用於大型 Python 程式碼庫的快速、可擴展的類型檢查器。
Pyright - Python 的靜態型別檢查器,旨在解決 mypy 等現有工具中的缺陷。
火燒
Pysa — 一種基於 Facebook 的 Pyre-Check 的工具,用於識別透過污點分析識別的 Python 程式碼中的潛在安全性問題。
PyT - Python 污點
pytype — Python 程式碼的靜態型別分析器。
pyupgrade — 一種工具(和預提交掛鉤),用於自動升級該語言新版本的語法。
量化程式碼
radon — 一種從原始碼計算各種指標的 Python 工具。
refurb — 用於翻新和現代化 Python 程式碼庫的工具。 Refurb 很大程度上受到了 Clippy(Rust 的內建 linter)的啟發。
ruff — 快速 Python linter,用 Rust 寫。比現有的 linter 快 10-100 倍。與Python 3.10相容。支援文件觀察器。
unimport — 用於尋找和刪除未使用的導入語句的 linter、格式化程式。
vulture — 尋找 Python 程式碼中未使用的類別、函數和變數。
wemake-python-styleguide — 有史以來最嚴格、最固執己見的 python linter。
狡猾的