Ce référentiel répertorie les outils d'analyse statique pour tous les langages de programmation, les outils de construction, les fichiers de configuration et bien plus encore. L'accent est mis sur les outils qui améliorent la qualité du code, tels que les linters et les formateurs. Le site officiel, Analysis-tools.dev, est basé sur ce référentiel et ajoute des classements, des commentaires d'utilisateurs et des ressources supplémentaires telles que des vidéos pour chaque outil.
Ce projet ne serait pas possible sans le généreux soutien de nos sponsors.
Si vous souhaitez également soutenir ce projet, rendez-vous sur notre page sponsors Github.
Les demandes de tirage sont les bienvenues !
Consultez également le projet frère, Awesome-dynamic-analysis.
abaplint — Linter pour ABAP, écrit en TypeScript.
abapOpenChecks — Améliore SAP Code Inspector avec de nouveaux contrôles personnalisables.
Codepeer ©️ — Détecte les erreurs d'exécution et de logique.
Polyspace pour Ada ©️ — Fournit une vérification du code qui prouve l'absence de débordement, de division par zéro, d'accès au tableau hors limites et de certaines autres erreurs d'exécution dans le code source.
SPARK ©️ — Ensemble d'outils d'analyse statique et de vérification formelle pour Ada.
Astrée ©️ — Astrée prouve automatiquement l'absence d'erreurs d'exécution et de comportement concurrent non valide dans les applications C/C++. C'est un bon outil pour les calculs en virgule flottante, très rapide et exceptionnellement précis. L'analyseur vérifie également les règles de codage MISRA/CERT/CWE/Adaptive Autosar et prend en charge la qualification ISO 26262, DO-178C niveau A et d'autres normes de sécurité. Les plugins Jenkins et Eclipse sont disponibles.
CBMC — Vérificateur de modèle limité pour les programmes C, assertions définies par l'utilisateur, assertions standard, plusieurs analyses de métriques de couverture.
clang-tidy — Outil linter C++ basé sur Clang avec la capacité (limitée) de résoudre également les problèmes.
clazy — Analyseur de code statique orienté Qt basé sur le framework Clang. clazy est un plugin de compilateur qui permet à clang de comprendre la sémantique de Qt. Vous recevez plus de 50 avertissements du compilateur liés à Qt, allant des allocations de mémoire inutiles à une mauvaise utilisation de l'API, en passant par des correctifs pour la refactorisation automatique.
CMetrics — Mesure la taille et la complexité des fichiers C.
CPAchecker — Un outil de vérification logicielle configurable des programmes C. Le nom CPAchecker a été choisi pour refléter le fait que l'outil est basé sur les concepts du CPA et est utilisé pour vérifier les logiciels.
cppcheck — Analyse statique du code C/C++.
CppDepend ©️ — Mesurez, interrogez et visualisez votre code et évitez les problèmes inattendus, la dette technique et la complexité.
cpplint — Vérificateur C++ automatisé qui suit le guide de style de Google.
cqmetrics — Métriques de qualité pour le code C.
CScout — Métriques de complexité et de qualité pour le code des préprocesseurs C et C.
ENRE-cpp — ENRE (ENtity Relationship Extractor) est un outil d'extraction des dépendances ou des relations d'entités de code à partir du code source. ENRE-cpp est un extracteur de relations ENtity pour C/C++ basé sur @eclipse/CDT. (En cours de développement)
ESBMC — ESBMC est un vérificateur de modèles open source, sous licence permissive et limité au contexte, basé sur les théories de satisfiabilité modulo pour la vérification des programmes C/C++ monothread et multithread.
chercheur de défauts
silex++
Frama-C — Un analyseur statique solide et extensible pour le code C.
GCC — Le compilateur GCC dispose de capacités d'analyse statique depuis la version 10. Cette option n'est disponible que si GCC a été configuré avec la prise en charge de l'analyseur activée. Il peut également sortir ses diagnostics dans un fichier JSON au format SARIF (à partir de la v13).
Goblint — Un analyseur statique pour l'analyse de programmes C multithread. Son objectif principal est la détection des courses de données, mais il signale également d'autres erreurs d'exécution, telles que les dépassements de tampon et les déréférencements de pointeurs nuls.
Helix QAC ©️ — Analyse statique de niveau entreprise pour les logiciels embarqués. Prend en charge les normes de codage MISRA, CERT et AUTOSAR.
IKOS — Un analyseur statique sonore pour le code C/C++ basé sur LLVM.
Joern — Plateforme d'analyse de code open source pour C/C++ basée sur des graphiques de propriétés de code
KLEE — Un moteur d'exécution symbolique dynamique construit sur l'infrastructure du compilateur LLVM. Il peut générer automatiquement des cas de test pour des programmes de telle sorte que les cas de test exercent autant que possible le programme.
LDRA ©️ — Une suite d'outils comprenant l'analyse statique (TBVISION) selon diverses normes, notamment MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ et Custom Rules.
COPAIN
PC-lint ©️ — Analyse statique pour C/C++. Fonctionne nativement sous Windows/Linux/MacOS. Analyse le code de pratiquement toutes les plateformes, prenant en charge C11/C18 et C++17.
Phasar — Un cadre d'analyse statique basé sur LLVM qui est livré avec une analyse de l'état de contamination et de type.
Polyspace Bug Finder ©️ — Identifie les erreurs d'exécution, les problèmes de concurrence, les vulnérabilités de sécurité et d'autres défauts dans les logiciels embarqués C et C++.
Polyspace Code Prover ©️ — Fournit une vérification du code qui prouve l'absence de débordement, de division par zéro, d'accès aux tableaux hors limites et de certaines autres erreurs d'exécution dans le code source C et C++.
scan-build — Frontend pour piloter l'analyseur statique Clang intégré à Clang via une version régulière.
splint — Vérificateur de programme statique assisté par annotation.
SVF — Un outil statique qui permet une analyse de dépendance interprocédurale évolutive et précise pour les programmes C et C++.
TrustInSoft Analyzer ©️ — Détection exhaustive des erreurs de codage et de leurs vulnérabilités de sécurité associées. Cela englobe une bonne détection de comportement indéfini (débordements de tampon, accès hors limites aux tableaux, déréférences de pointeur nul, utilisation après libération, division par zéros, accès mémoire non initialisés, débordements signés, arithmétique de pointeur invalide, etc.) , la vérification des flux de données et des flux de contrôle ainsi que la vérification fonctionnelle complète des spécifications formelles. Toutes les versions de C jusqu'à C18 et C++ jusqu'à C++20 sont prises en charge. TrustInSoft Analyzer obtiendra la qualification ISO 26262 au deuxième trimestre 2023 (TCL3). Un vérificateur MISRA C est également fourni.
vera++
Analyseurs .NET — Une organisation pour le développement d'analyseurs (diagnostics et correctifs de code) à l'aide de la plate-forme de compilateur .NET.
ArchUnitNET — Bibliothèque de tests d'architecture AC# pour spécifier et affirmer des règles d'architecture en C# pour les tests automatisés.
code-cracker — Une bibliothèque d'analyseurs pour C# et VB qui utilise Roslyn pour produire des refactorisations, des analyses de code et d'autres subtilités.
CSharpEssentials
Designite ©️ — Designite prend en charge la détection de diverses odeurs d'architecture, de conception et de mise en œuvre, le calcul de diverses mesures de qualité du code et l'analyse des tendances.
Gendarme — Gendarme inspecte les programmes et bibliothèques contenant du code au format ECMA CIL (Mono et .NET).
Déduire#
Meziantou.Analyzer — Un analyseur Roslyn pour appliquer certaines bonnes pratiques en C# en termes de conception, d'utilisation, de sécurité, de performances et de style.
NDepend ©️ — Mesurez, interrogez et visualisez votre code et évitez les problèmes inattendus, la dette technique et la complexité.
Puma Scan — Puma Scan fournit une analyse sécurisée du code en temps réel pour les vulnérabilités courantes (XSS, SQLi, CSRF, LDAPi, crypto, désérialisation, etc.) pendant que les équipes de développement écrivent du code dans Visual Studio.
Roslynator — Une collection de plus de 190 analyseurs et de plus de 190 refactorisations pour C#, optimisés par Roslyn.
SonarAnalyzer.CSharp — Ces analyseurs Roslyn vous permettent de produire un code propre qui est sûr, fiable et maintenable en vous aidant à trouver et à corriger les bogues, les vulnérabilités et les odeurs de code dans votre base de code.
VSDiagnostics
Wintellect.Analyzers — Analyseurs de diagnostic et correctifs de code de la plate-forme de compilation .NET (« Roslyn »).
Astrée ©️ — Astrée prouve automatiquement l'absence d'erreurs d'exécution et de comportement concurrent non valide dans les applications C/C++. C'est un bon outil pour les calculs en virgule flottante, très rapide et exceptionnellement précis. L'analyseur vérifie également les règles de codage MISRA/CERT/CWE/Adaptive Autosar et prend en charge la qualification ISO 26262, DO-178C niveau A et d'autres normes de sécurité. Les plugins Jenkins et Eclipse sont disponibles.
CBMC — Vérificateur de modèle limité pour les programmes C, assertions définies par l'utilisateur, assertions standard, plusieurs analyses de métriques de couverture.
clang-tidy — Outil linter C++ basé sur Clang avec la capacité (limitée) de résoudre également les problèmes.
clazy — Analyseur de code statique orienté Qt basé sur le framework Clang. clazy est un plugin de compilateur qui permet à clang de comprendre la sémantique de Qt. Vous recevez plus de 50 avertissements du compilateur liés à Qt, allant des allocations de mémoire inutiles à une mauvaise utilisation de l'API, en passant par des correctifs pour la refactorisation automatique.
CMetrics — Mesure la taille et la complexité des fichiers C.
cppcheck — Analyse statique du code C/C++.
CppDepend ©️ — Mesurez, interrogez et visualisez votre code et évitez les problèmes inattendus, la dette technique et la complexité.
cpplint — Vérificateur C++ automatisé qui suit le guide de style de Google.
cqmetrics — Métriques de qualité pour le code C.
CScout — Métriques de complexité et de qualité pour le code des préprocesseurs C et C.
ENRE-cpp — ENRE (ENtity Relationship Extractor) est un outil d'extraction des dépendances ou des relations d'entités de code à partir du code source. ENRE-cpp est un extracteur de relations ENtity pour C/C++ basé sur @eclipse/CDT. (En cours de développement)
ESBMC — ESBMC est un vérificateur de modèles open source, sous licence permissive et limité au contexte, basé sur les théories de satisfiabilité modulo pour la vérification des programmes C/C++ mono et multithread.
chercheur de défauts
silex++
Frama-C — Un analyseur statique solide et extensible pour le code C.
Helix QAC ©️ — Analyse statique de niveau entreprise pour les logiciels embarqués. Prend en charge les normes de codage MISRA, CERT et AUTOSAR.
IKOS — Un analyseur statique sonore pour le code C/C++ basé sur LLVM.
Joern — Plateforme d'analyse de code open source pour C/C++ basée sur des graphiques de propriétés de code
KLEE — Un moteur d'exécution symbolique dynamique construit sur l'infrastructure du compilateur LLVM. Il peut générer automatiquement des cas de test pour des programmes de telle sorte que les cas de test exercent autant que possible le programme.
LDRA ©️ — Une suite d'outils comprenant l'analyse statique (TBVISION) selon diverses normes, notamment MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ et Custom Rules.
COPAIN
PC-lint ©️ — Analyse statique pour C/C++. Fonctionne nativement sous Windows/Linux/MacOS. Analyse le code de pratiquement toutes les plateformes, prenant en charge C11/C18 et C++17.
Phasar — Un cadre d'analyse statique basé sur LLVM qui est livré avec une analyse de l'état de contamination et de type.
Polyspace Bug Finder ©️ — Identifie les erreurs d'exécution, les problèmes de concurrence, les vulnérabilités de sécurité et d'autres défauts dans les logiciels embarqués C et C++.
Polyspace Code Prover ©️ — Fournit une vérification du code qui prouve l'absence de débordement, de division par zéro, d'accès aux tableaux hors limites et de certaines autres erreurs d'exécution dans le code source C et C++.
scan-build — Frontend pour piloter l'analyseur statique Clang intégré à Clang via une version régulière.
splint — Vérificateur de programme statique assisté par annotation.
SVF — Un outil statique qui permet une analyse de dépendance interprocédurale évolutive et précise pour les programmes C et C++.
TrustInSoft Analyzer ©️ — Détection exhaustive des erreurs de codage et de leurs vulnérabilités de sécurité associées. Cela englobe une bonne détection de comportement indéfini (débordements de tampon, accès hors limites aux tableaux, déréférences de pointeur nul, utilisation après libération, division par zéros, accès mémoire non initialisés, débordements signés, arithmétique de pointeur invalide, etc.) , la vérification des flux de données et des flux de contrôle ainsi que la vérification fonctionnelle complète des spécifications formelles. Toutes les versions de C jusqu'à C18 et C++ jusqu'à C++20 sont prises en charge. TrustInSoft Analyzer obtiendra la qualification ISO 26262 au deuxième trimestre 2023 (TCL3). Un vérificateur MISRA C est également fourni.
vera++
ameba — Un outil d'analyse de code statique pour Crystal.
crystal — Le compilateur Crystal a une fonctionnalité de peluchage intégrée.
Métriques du code de fléchettes
effective_dart — Règles Linter correspondant aux directives d'Effective Dart
peluche
Linter pour fléchettes — Linter de style pour Dart.
DelphiLint — Un package Delphi IDE fournissant une analyse de code et un peluchage à la volée, optimisé par SonarDelphi.
Fix Insight ©️ — Un plugin IDE gratuit pour l'analyse de code statique. Une édition Pro comprend un outil de ligne de commande à des fins d'automatisation.
Pascal Analyzer ©️ — Un outil d'analyse de code statique avec de nombreux rapports. Une version Lite gratuite est disponible avec des rapports limités.
Pascal Expert ©️ — Plugin IDE pour l'analyse de code. Inclut un sous-ensemble de fonctionnalités de reporting de Pascal Analyzer et est disponible pour les versions Delphi 2007 et ultérieures.
SonarDelphi — Analyseur statique Delphi pour la plateforme de qualité de code SonarQube.
credo — Un outil d'analyse de code statique axé sur la cohérence et l'enseignement du code.
dialyxir — Mélangez les tâches pour simplifier l'utilisation de Dialyser dans les projets Elixir.
sobelow — Analyse statique axée sur la sécurité pour le framework Phoenix.
analyse d'orme
elm-review — Analyse des projets Elm entiers, en mettant l'accent sur les règles partageables et personnalisées écrites en Elm qui ajoutent des garanties que le compilateur Elm ne vous donne pas.
dialyseur — Le DIALYZER, un analyseur de divergences pour les programmes ERlang. Dialyzer est un outil d'analyse statique qui identifie les écarts logiciels, tels que les erreurs de type définies, le code devenu mort ou inaccessible en raison d'une erreur de programmation et les tests inutiles, dans des modules Erlang uniques ou dans des (ensembles d') applications entières. Dialyzer démarre son analyse à partir du bytecode BEAM compilé par le débogage ou du code source Erlang. Le numéro de fichier et de ligne d'une divergence est signalé avec une indication de l'objet de la divergence. Dialyser base son analyse sur le concept de success typings, qui permet des avertissements sonores (pas de faux positifs).
elvis — Critique du style Erlang.
Primitive Erlang Security Tool (PEST) — Un outil permettant d'effectuer une analyse de base du code source d'Erlang et de signaler tout appel de fonction susceptible de rendre le code source d'Erlang non sécurisé.
fantomas — Formateur de code source F#.
FSharpLint — Outil Lint pour F#.
ionide-analyzers — Une collection d'analyseurs F#, construits avec le FSharp.Analyzers.SDK.
fprettify — Formateur automatique pour le code source fortran moderne, écrit en Python. Fprettify est un outil qui fournit un alignement cohérent des espaces, de l'indentation et des délimiteurs dans le code, y compris la possibilité de modifier la casse des lettres et de gérer les directives du préprocesseur, tout en préservant l'historique des révisions et en testant l'intégration de l'éditeur.
i-Code CNES pour Fortran — Un outil d'analyse de code statique open source pour Fortran 77, Fortran 90 et Shell.
aligncheck — Recherchez des structures compressées de manière inefficace.
bodyclose — Vérifie si le corps de la réponse HTTP est fermé.
code mort — Recherche le code inutilisé.
chasseur de dingo
traîneau à chiens — Recherche les affectations/déclarations avec trop d'identifiants vides.
double
errcheck — Vérifiez que les valeurs de retour d'erreur sont utilisées.
errwrap — Encapsulez et corrigez les erreurs Go avec la nouvelle directive de verbe %w. Cet outil analyse les appels fmt.Errorf() et signale les appels qui contiennent une directive verbale différente de la nouvelle directive verbale %w introduite dans Go v1.13. Il est également capable de réécrire les appels pour utiliser la nouvelle directive de verbe wrap %w.
flen — Obtenez des informations sur la longueur des fonctions dans un package Go.
Allez Meta Lintergolangci-lint
pour les nouveaux projets.
go tool vet --shadow — Signale les variables qui peuvent avoir été involontairement masquées.
go vet — Examine le code source de Go et signale les cas suspects.
go-consistent — Analyseur qui vous aide à rendre vos programmes Go plus cohérents.
go-critic — Linter de code source Go qui maintient des vérifications qui ne sont actuellement pas implémentées dans d'autres linters.
go/ast — Le package ast déclare les types utilisés pour représenter les arbres de syntaxe des packages Go.
chèvre
gochecknoglobals
goconst — Recherche les chaînes répétées qui pourraient être remplacées par une constante.
gocyclo
gofmt -s — Vérifie si le code est correctement formaté et n'a pas pu être simplifié davantage.
gofumpt — Applique un format plus strict que gofmt
, tout en étant rétrocompatible. Autrement dit, gofumpt
se contente d'un sous-ensemble de formats dont gofmt
est satisfait. L'outil est un fork de gofmt
à partir de Go 1.19 et nécessite Go 1.18 ou version ultérieure. Il peut être utilisé en remplacement pour formater votre code Go, et exécuter gofmt après gofumpt ne devrait produire aucun changement. gofumpt
n'ajoutera jamais de règles en désaccord avec le formatage gofmt
. Nous étendons donc gofmt
plutôt que de lui faire concurrence.
goimports — Vérifie les importations de packages manquants ou non référencés.
gokart — Analyse de sécurité Golang en mettant l'accent sur la minimisation des faux positifs. Il est capable de retracer la source des variables et des arguments de fonction pour déterminer si les sources d'entrée sont sûres.
GolangCI-Lint — Alternative à Go Meta Linter
: GolangCI-Lint est un agrégateur de linters.
golint — Imprime les erreurs de style de codage dans le code source Go.
goreporter — Exécute simultanément de nombreux linters et normalise leur sortie dans un rapport.
goroutine-inspect — Un outil interactif pour analyser le dump goroutine de Golang.
gosec (gas) — Inspecte le code source pour détecter les problèmes de sécurité en analysant le Go AST.
gotype — Analyse syntaxique et sémantique similaire au compilateur Go.
govulncheck — Govulncheck signale les vulnérabilités connues qui affectent le code Go. Il utilise une analyse statique du code source ou une table de symboles binaires pour limiter les rapports à ceux susceptibles d'affecter l'application. Par défaut, govulncheck envoie des requêtes à la base de données de vulnérabilités Go à l'adresse https://vuln.go.dev. Les requêtes adressées à la base de données de vulnérabilités contiennent uniquement des chemins de module, pas du code ou d'autres propriétés de votre programme.
ineffassign — Détecte les affectations inefficaces dans le code Go.
interfaceur
lll
calomnié
faute d'orthographe — Recherche les mots anglais fréquemment mal orthographiés.
Nakedret — Recherche les retours nus.
nargs — Recherche les arguments inutilisés dans les déclarations de fonction.
prealloc — Recherche les déclarations de tranche qui pourraient potentiellement être préallouées.
Reviewdog — Un outil pour publier des commentaires de révision de n'importe quel linter dans n'importe quel service d'hébergement de code.
revive — Linter rapide, configurable, extensible, flexible et magnifique pour Go. Remplacement immédiat du golint.
SafeSQL
shisho
staticcheck — Optez pour une analyse statique spécialisée dans la recherche de bogues, la simplification du code et l'amélioration des performances.
structcheck — Recherchez les champs de structure inutilisés.
structslop — Analyseur statique pour Go qui recommande des réarrangements de champs de structure pour fournir une efficacité maximale d'espace/d'allocation
test — Afficher l'emplacement des échecs de test à partir du module de test stdlib.
annuler la conversion
unparam — Recherchez les paramètres de fonction inutilisés.
varcheck — Recherchez les variables et constantes globales inutilisées.
wsl — Applique les lignes vides aux bons endroits.
Bretagne
HLint — HLint est un outil permettant de suggérer des améliorations possibles au code Haskell.
Liquid Haskell — Liquid Haskell est un vérificateur de type de raffinement pour les programmes Haskell.
Stan — Stan est un outil en ligne de commande permettant d'analyser les projets Haskell et de générer de manière utile les vulnérabilités découvertes avec des solutions possibles aux problèmes détectés.
Weeder — Un outil pour détecter les exportations mortes ou les importations de packages dans le code Haskell.
Checker Framework — Vérification de type enfichable pour Java. Il ne s'agit pas seulement d'un outil de recherche de bugs, mais d'un outil de vérification qui donne une garantie d'exactitude. Il est livré avec 27 systèmes de types prédéfinis et permet aux utilisateurs de définir leur propre système de types ; le manuel répertorie plus de 30 systèmes de types fournis par les utilisateurs.
checkstyle — Vérification du code source Java pour le respect d'une norme de code ou d'un ensemble de règles de validation (meilleures pratiques).
ck — Calcule les métriques orientées objet Chidamber et Kemerer en traitant les fichiers Java sources.
ckjm — Calcule les métriques orientées objet Chidamber et Kemerer en traitant le bytecode des fichiers Java compilés.
CogniCrypt — Vérifie la source Java et le code d'octet pour détecter les utilisations incorrectes des API cryptographiques.
Dataflow Framework — Un framework de flux de données de puissance industrielle pour Java. Le Dataflow Framework est utilisé dans Checker Framework, Error Prone de Google, NullAway d'Uber, Nullsafe de Meta et dans d'autres contextes. Il est distribué avec le Checker Framework.
DesigniteJava ©️ — DesigniteJava prend en charge la détection de diverses odeurs d'architecture, de conception et de mise en œuvre ainsi que le calcul de diverses mesures de qualité du code.
Diffblue ©️ — Diffblue est une société de logiciels qui fournit des solutions d'analyse et de test de code basées sur l'IA pour les équipes de développement de logiciels. Sa technologie aide les développeurs à automatiser les tests, à détecter les bogues et à réduire le travail manuel dans leurs processus de développement logiciel. Le produit principal de la société, Diffblue Cover, utilise l'IA pour générer et exécuter des tests unitaires pour le code Java, aidant ainsi à détecter les erreurs et à améliorer la qualité du code.
Doop — Doop est un framework déclaratif pour l'analyse statique des programmes Java/Android, centré sur les algorithmes d'analyse de pointeurs. Doop fournit une grande variété d'analyses ainsi que l'échafaudage environnant pour exécuter une analyse de bout en bout (génération de faits, traitement, statistiques, etc.).
ENRE-java — ENRE (ENtity Relationship Extractor) est un outil d'extraction des dépendances ou des relations d'entités de code à partir du code source. ENRE-java est un extracteur de relations ENtity pour les projets Java basé sur @Eclipse JDT/parser.
Sujet aux erreurs – Détectez les erreurs Java courantes en tant qu’erreurs de compilation.
fb-contrib — Un plugin pour FindBugs avec des détecteurs de bogues supplémentaires.
interdit-apis — Détecte et interdit les invocations de méthodes/classes/champs spécifiques (comme la lecture à partir d'un flux de texte sans jeu de caractères). Compatible Maven/Gradle/Ant.
google-java-format — Reformate le code source Java pour se conformer au style Google Java
Chasser les insectes
IntelliJ IDEA ©️ — Livré avec de nombreuses inspections pour Java et Kotlin et comprend des outils de refactoring, de formatage et plus encore.
JArchitect ©️ — Mesurez, interrogez et visualisez votre code et évitez les problèmes inattendus, la dette technique et la complexité.
JBMC — Vérificateur de modèle limité pour Java (bytecode), vérifie les assertions définies par l'utilisateur, les assertions standard et plusieurs analyses de métriques de couverture.
Mariana Trench — Notre outil d'analyse statique axé sur la sécurité pour les applications Android et Java. Mariana Trench analyse le bytecode Dalvik et est conçue pour fonctionner rapidement sur de grandes bases de code (des dizaines de millions de lignes de code). Il peut détecter des vulnérabilités à mesure que le code change, avant même qu'il n'arrive dans votre référentiel.
NullAway — Vérificateur de pointeur nul basé sur le type avec une faible surcharge de temps de construction ; un plugin sujet aux erreurs.
OWASP Dependency Check — Vérifie les dépendances pour les vulnérabilités connues et divulguées publiquement.
qulice — Combine quelques outils d'analyse statique (préconfigurés) (checkstyle, PMD, Findbugs, ...).
RefactorFirst — Identifie et hiérarchise les classes divines et les classes hautement couplées dans les bases de code Java que vous devez d'abord refactoriser.
Suie — Un framework pour analyser et transformer les applications Java et Android.
Spoon — Spoon est une bibliothèque de métaprogrammation pour analyser et transformer le code source Java (y compris Java 9, 10, 11, 12, 13, 14). Il analyse les fichiers sources pour créer un AST bien conçu avec une puissante API d'analyse et de transformation. Peut être intégré dans Maven et Gradle.
SpotBugs — SpotBugs est le successeur de FindBugs. Un outil d'analyse statique pour rechercher des bugs dans le code Java.
stable — Analyse vos applications Java à la recherche de dépendances open source présentant des vulnérabilités connues, en utilisant à la fois l'analyse statique et les tests pour déterminer le contexte et l'utilisation du code pour une plus grande précision.
Violations Lib — Bibliothèque Java pour analyser les fichiers de rapport à partir de l'analyse de code statique. Utilisé par un tas de plugins Jenkins, Maven et Gradle.
éther
Closure Compiler — Un outil de compilation pour augmenter l'efficacité, réduire la taille et fournir des avertissements de code dans les fichiers JavaScript.
FermetureLinter
rapport de complexité
DeepScan ©️ — Un analyseur pour JavaScript qui cible les erreurs d'exécution et les problèmes de qualité plutôt que les conventions de codage.
es6-platon
escomplexe
Esprima
flow — Un vérificateur de type statique pour JavaScript.
hegel — Un vérificateur de type statique pour JavaScript avec un biais sur l'inférence de type et les systèmes de types forts.
jshint — Détectez les erreurs et les problèmes potentiels dans le code JavaScript et appliquez les conventions de codage de votre équipe.
JSLint — L'outil de qualité du code JavaScript.
JSPrime
NodeJSScan — Un scanner de code de sécurité statique pour les applications Node.js alimenté par libsast et semgrep qui s'appuie sur l'outil cli njsscan. Il comporte une interface utilisateur avec divers tableaux de bord sur l'état de sécurité d'une application.
Platon
Polymer-analyzer — Un cadre d'analyse statique pour les composants Web.
retraite.js — Scanner détectant l'utilisation de bibliothèques JavaScript présentant des vulnérabilités connues.
RSLint
standard — Un module npm qui vérifie les problèmes de Javascript Styleguide.
tern — Un analyseur de code JavaScript pour une prise en charge approfondie des langages entre éditeurs.
TypL
xo — Wrapper ESLint avisé mais configurable avec de nombreux goodies inclus. Applique un code strict et lisible.
critère
JET — Système d'inférence de type statique pour détecter les bogues et les instabilités de type.
StaticLint — Analyse de code statique pour Julia
detekt — Analyse de code statique pour le code Kotlin.
diktat — Norme de codage stricte pour Kotlin et un linter qui détecte et corrige automatiquement les odeurs de code.
ktfmt — Un programme qui reformate le code source de Kotlin pour se conformer à la norme communautaire commune pour les conventions de code Kotlin. Un plugin ktfmt IntelliJ est disponible dans le référentiel de plugins. Pour l'installer, accédez aux paramètres de votre IDE et sélectionnez la catégorie Plugins. Cliquez sur l'onglet Marketplace, recherchez le plugin ktfmt et cliquez sur le bouton Installer.
ktlint — Un linter Kotlin anti-bikeshedding avec formateur intégré.
luacheck — Un outil de peluchage et d'analyse statique du code Lua.
lualint — lualint effectue une analyse statique basée sur Luac de l'utilisation des variables globales dans le code source Lua.
Luanalyse
DrNim — DrNim combine l'interface Nim avec le moteur de preuve Z3 afin de permettre de vérifier/valider les logiciels écrits en Nim.
nimfmt — Formateur de code Nim / linter / vérificateur de style
Sys — Un outil statique/symbolique pour rechercher des bogues dans le code (du navigateur). Il utilise le LLVM AST pour rechercher des bogues tels que l'accès à la mémoire non initialisé.
VeriFast — Un outil de vérification formelle modulaire des propriétés d'exactitude des programmes C et Java monothread et multithread annotés avec des préconditions et des postconditions écrites dans une logique de séparation. Pour exprimer des spécifications riches, le programmeur peut définir des données inductives, des fonctions pures récursives primitives sur ces données de données et des prédicats de logique de séparation abstrait.
CakeFuzzer - outil de test de sécurité des applications Web pour les applications Web basées sur CakePHP. CakeFuzzer utilise un ensemble prédéfini d'attaques qui sont modifiées au hasard avant l'exécution. Tirant parti de sa compréhension approfondie du cadre de Cake PHP, Cake Fuzzer lance des attaques sur tous les points d'entrée potentiels d'application.
Churn-PHP - Aide à découvrir de bons candidats à la refactorisation.
Compositeur-dépendance-analyser - Détection rapide des problèmes de dépendance des compositeurs.
DephPend - Outil d'analyse de dépendance.
Détecteur de dépréciation - trouve des usages du code (Symfony) déprécié.
Deptrac - appliquer les règles pour les dépendances entre les couches logicielles.
DesignPatterNdector - Détection des modèles de conception dans le code PHP.
EasycodingStandard - Combinez PHP_CODESNIFFER et PHP-CS-FIXER.
IMLIGHTN - Un outil d'analyse statique et dynamique pour les applications Laravel qui fournit des recommandations pour améliorer les performances, la sécurité et la fiabilité du code des applications Laravel. Contient 120 chèques automatisés.
EXAKAT - Un moteur de revue de code automatisé pour PHP.
Grumphp - vérifie le code sur chaque commit.
LARASTAN - Ajoute une analyse statique à Laravel améliorant la productivité des développeurs et la qualité du code. C'est un wrapper autour de Phpstan.
Mondrian
Nitpick CI © ️ - Revue de code PHP automatisé.
parallèle-lint - Cet outil vérifie la syntaxe des fichiers PHP plus rapidement que la vérification de série avec une sortie plus chic.
Parse - Un scanner de sécurité statique.
PDEPEND - Calcule les mesures logicielles comme la complexité cyclomatique pour le code PHP.
PHAN - Un analyseur statique moderne d'Etsy.
Testeur d'architecture PHP - outil de test d'architecture facile à utiliser pour PHP.
Hypothèses PHP - Vérification des hypothèses faibles.
Fixer des normes de codage PHP - Corrige votre code selon des normes comme PSR-1, PSR-2 et la norme Symfony.
PHP Insights - vérifications instantanées de qualité PHP de votre console. Analyse de la qualité du code et du style de codage ainsi que de la vue d'ensemble de l'architecture de code et de sa complexité.
Inspections PHP (EA étendue) - Un analyseur de code statique pour PHP.
Navigateur de refactorisation PHP - Aide à refactoring.
Vérificateur de version sémantique PHP
PHP-PARSER - Un analyseur PHP écrit en PHP.
PHP-Speller - PHP Spell Check Library.
PHP-token-réflexion
php7cc
php7
Php_codesniffer - détecte les violations d'un ensemble défini de normes de codage.
PHPARKITECT - PHPARKITECT vous aide à garder votre base de code PHP cohérente et solide, en permettant d'ajouter une vérification de contrainte architecturale à votre flux de travail. Vous pouvez exprimer la contrainte que vous souhaitez appliquer, dans un code PHP simple et lisible.
phpCA
phpcpd
phpdcd
PhpdependencyAnalysis
PHPDEPRECATIONDETERECTEUR - Analyseur de code PHP pour rechercher les problèmes avec les fonctionnalités obsolètes dans des versions d'interprètes plus récentes. Il trouve des objets supprimés (fonctions, variables, constantes et ini-directives), fonctionnalité des fonctions obsolètes et utilisation de noms ou astuces interdits (par exemple les identifiants réservés dans les versions plus récentes).
phpdoc à type
PHPDocumentor - analyse le code source PHP pour générer de la documentation.
PHPLOC - Un outil pour mesurer rapidement la taille et analyser la structure d'un projet PHP.
PHPMD - trouve des bogues possibles dans votre code.
Phpmetrics - calcule et visualise diverses mesures de qualité de code.
PHPMND - Aide à détecter les nombres magiques.
Phpqa
PHPQA - JAKZAL - De nombreux outils pour l'analyse statique PHP dans un conteneur.
PHPQA - JMOLIVAS - outil CLI d'analyseur tout-en-un PHPQA.
PHPSA
PHPSTAN - PHP Static Analysis Tool - Découvrez des bogues dans votre code sans l'exécuter!
Progpilot - Un outil d'analyse statique à des fins de sécurité.
Psaume - outil d'analyse statique pour trouver des erreurs de type dans les applications PHP.
Analyseur de qualité Qafoo
Recteur - Mises à niveau instantanée et refactorisation automatisée de tout code PHP 5.3+. Il améliore votre code pour PHP 7,4, 8,0 et au-delà. Le recteur promet un faible taux de faux positif car il recherche des modèles AST de étroite (syntaxe abstrait). Le cas d'utilisation principal est de s'attaquer à la dette technique dans votre code hérité et à supprimer le code mort. Le recteur fournit un ensemble de règles spéciales pour Symfony, Doctrine, Phpunit et bien d'autres.
Réflexion - Bibliothèque de réflexion pour effectuer une analyse statique pour les projets PHP
Symfony Insight © ️ - détecter les risques de sécurité, trouver des bogues et fournir des mesures exploitables pour les projets PHP.
Tuli - Un moteur d'analyse statique.
Twig-lint - Twig-lint est un outil de peluche pour vos fichiers de brindilles.
WAP - outil pour détecter et corriger les vulnérabilités de validation des entrées dans les applications Web PHP (4.0 ou plus) et prédit de faux positifs en combinant l'analyse statique et l'exploration de données.
Perl :: Analyzer - Perl-Analyzer est un ensemble de programmes et de modules qui permettent aux utilisateurs d'analyser et de visualiser les bases de code Perl en fournissant des informations sur les espaces de noms et leurs relations, les dépendances, l'héritage et les méthodes mis en œuvre, héritée et redéfinie dans les packages, ainsi que comme appels aux méthodes des packages parents via Super.
Perl :: Critic - Critique Perl Code source des meilleures pratiques.
Perltidy - Perltidy est un script perl qui indente et reformates les scripts Perl pour les rendre plus faciles à lire. Le formatage peut être contrôlé avec des paramètres de ligne de commande. Les paramètres de paramètre par défaut suivent approximativement les suggestions du guide de style Perl. Outre les scripts reformatring, Perltidy peut être d'une grande aide pour retrouver les erreurs avec des accolades, des parenthèses et des parenthèses manquants ou supplémentaires, car il est très bon pour localiser les erreurs.
Zarn - Un outil d'analyse de sécurité statique léger pour les applications Perl modernes
Autoflake - Autoflake supprime les importations inutilisées et les variables inutilisées du code Python.
AUTOPEP8 - Un outil qui formate automatiquement le code Python pour se conformer au guide de style PEP 8. Il utilise l'utilitaire Pyodestyle pour déterminer quelles parties du code doivent être formatées.
Bandit - Un outil pour trouver des problèmes de sécurité communs dans le code Python.
BELLYBUTTON - Un moteur libellé en charge des règles spécifiques au projet personnalisées.
Black - Le formateur de code Python sans compromis.
Bowler - refactoring de code sûr pour le python moderne. Le bowler est un outil de refactorisation pour manipuler Python au niveau de l'arbre de syntaxe. Il permet des modifications de code à grande échelle sûres tout en garantissant que le code résultant compile et s'exécute. Il fournit à la fois une interface de ligne de commande simple et une API fluide dans Python pour générer des modifications de code complexes dans le code.
ciochepep8
, pydocstyle
, flake8
et pylint
.
cohésion
Deal - Conception par contrat pour Python. Écrivez du code sans bug. En ajoutant quelques décorateurs à votre code, vous obtenez des tests gratuits, une analyse statique, une vérification formelle et bien plus encore.
Dlint - Un outil pour garantir le code Python est sécurisé.
Todgy - Dodgy est un outil très basique à exécuter contre votre base de code pour rechercher des valeurs "douloureuses". Il s'agit d'une série d'expressions régulières simples conçues pour détecter des éléments tels que des vérifications accidentelles de SCM Diff, ou des mots de passe ou des clés secrètes codées en dur dans des fichiers.
Enre-coup
Fixit - Un cadre de création de règles de charpie et de fixations automatiques correspondantes pour le code source.
Flake8 - un emballage autour pyflakes
, pycodestyle
et mccabe
.
FlakeHaven - FlakeHaven est un linter Python construit autour de Flake8 pour permettre une configuration Toml héréditaire et complexe.
Griffe - Signatures pour des programmes Python entiers. Extraire la structure, le cadre, le squelette de votre projet, pour générer une documentation de l'API ou trouver des changements de rupture dans votre API.
Inspectorateur
JEDI - Bibliothèque d'assurance automatique / Analyse statique pour Python.
Linty Fresh - Analyser les erreurs de peluche et les signaler à GitHub comme commentaires sur une demande de traction.
McCabe - Vérifiez la complexité de McCabe.
multibrintflake8
, isort
et modernize
.
MYPY - Un vérificateur de type statique qui vise à combiner les avantages de la frappe de canard et du typage statique, fréquemment utilisé avec le type de singe.
Prospecteur - un emballage autour de pylint
, pep8
, mccabe
et autres.
py-final-injection
Pyanalyze - Un outil pour détecter les erreurs communes programmatiques dans le code Python, telles que les références à des variables non définies et des erreurs de type. Il peut être étendu pour ajouter des règles supplémentaires et effectuer des vérifications spécifiques à des fonctions particulières.
Pycodequal © ️ - Pycodequal vous donne un aperçu de la complexité et des risques de bug. Il ajoute des critiques automatiques à vos demandes de traction.
Pyodestyle - (anciennement pep8
) Vérifiez le code Python contre certaines des conventions de style de PEP 8.
pydocstyle
Pyflakes - Vérifiez les fichiers source Python pour les erreurs.
Pylint - recherche d'erreurs de programmation, aide à appliquer une norme de codage et à renifler pour certaines odeurs de code. Il comprend en outre pyreverse
(un générateur de diagramme UML) et symilar
(un vérificateur de similitudes).
Pylyzers - Un analyseur de code / serveur de langage statique pour Python, écrit en rouille, axé sur la vérification des types et la sortie lisible.
Pyre-Check - un vérificateur de type rapide et évolutif pour les grandes bases de code Python.
Pyright - Checker de type statique pour Python, créé pour combler les lacunes dans les outils existants comme MyPy.
pyrome
PYSA - Un outil basé sur le Pyre-Check de Facebook pour identifier les problèmes de sécurité potentiels dans le code Python identifiés avec l'analyse de souillure.
Pyt - Python Taint
PYTYPE - Un analyseur de type statique pour le code Python.
Pyupgrade - Un outil (et un crochet pré-engagé) pour mettre à niveau automatiquement la syntaxe pour les versions plus récentes de la langue.
Code quantifié
Radon - Un outil Python qui calcule diverses mesures à partir du code source.
Remetteur - Un outil de rénovation et de modernisation des bases de code Python. La remise à neuf est fortement inspirée par Clippy, le linter intégré pour la rouille.
Ruff - Fast Python Linter, écrit en rouille. 10-100x plus vite que les liners existants. Compatible avec Python 3.10. Prend en charge l'observateur de fichiers.
UNIMPORT - Un linter, formateur pour trouver et supprimer les instructions d'importation inutilisées.
Vulture - Trouvez des classes, des fonctions et des variables inutilisées dans le code Python.
Wemake-Python-Styleguide - le Linter Python le plus strict et le plus avisé de tous les temps.
rusé