
Directory curata di strumenti di analisi statica (SAST) e linter per linguaggi di programmazione, configurazioni, strumenti di build e CI, incentrata sul miglioramento della qualità del codice.
Questo repository elenca strumenti di analisi statica per tutti i linguaggi di programmazione, build tool, file di configurazione e altro. L'attenzione è rivolta a strumenti che migliorano la qualità del codice, come linter e formatter. Il sito web ufficiale, analysis-tools.dev si basa su questo repository e aggiunge classifiche, commenti degli utenti e risorse aggiuntive come video per ogni strumento.
Questo progetto non sarebbe possibile senza il generoso supporto dei nostri sponsor.
Se vuoi anche tu supportare questo progetto, visita la nostra pagina sponsor di Github.
Le pull request sono molto benvenute!
Date anche un'occhiata al progetto gemello, awesome-dynamic-analysis.
abaplint — Linter per ABAP, scritto in TypeScript.
abapOpenChecks — Migliora SAP Code Inspector con nuovi controlli personalizzabili.
Polyspace for Ada ©️ — Fornisce la verifica del codice che dimostra l'assenza di overflow, divisione per zero, accesso ad array fuori dai limiti e alcuni altri errori di run-time nel codice sorgente.
SPARK ©️ — Set di strumenti di analisi statica e verifica formale per Ada.
Astrée ©️ — Astrée dimostra automaticamente l'assenza di errori di run-time e di comportamenti concorrenti non validi in applicazioni C/C++. È affidabile per i calcoli in virgola mobile, molto veloce ed estremamente preciso. L'analizzatore verifica anche le regole di codifica MISRA/CERT/CWE/Adaptive Autosar e supporta la qualificazione per ISO 26262, DO-178C livello A e altri standard di sicurezza. Sono disponibili plugin per Jenkins ed Eclipse.
CBMC — Model checker bounded per programmi C, asserzioni definite dall'utente, asserzioni standard, diverse analisi di metriche di copertura.
clang-tidy — Strumento linter per C++ basato su Clang, con la capacità (limitata) di correggere anche i problemi.
clazy — Analizzatore statico del codice orientato a Qt basato sul framework Clang. clazy è un plugin del compilatore che consente a clang di comprendere la semantica di Qt. Ottieni più di 50 avvisi del compilatore relativi a Qt, che vanno dalle allocazioni di memoria non necessarie all'uso improprio delle API, inclusi fix-it per il refactoring automatico.
CMetrics — Misura dimensione e complessità dei file C.
CPAchecker — Uno strumento per la verifica configurabile di programmi C. Il nome CPAchecker è stato scelto per riflettere il fatto che lo strumento si basa sui concetti CPA e viene utilizzato per verificare programmi software.
cppcheck — Analisi statica del codice C/C++.
CppDepend ©️ — Misura, interroga e visualizza il tuo codice ed evita problemi imprevisti, debito tecnico e complessità.
cpplint — Checker automatico C++ che segue la guida di stile di Google.
cqmetrics — Metriche di qualità per il codice C.
CScout — Metriche di complessità e qualità per il codice C e del preprocessore C.
.NET Analyzers — Un'organizzazione per lo sviluppo di analyzer (diagnostiche e correzioni di codice) usando la piattaforma del compilatore .NET.
ArchUnitNET — Una libreria di test di architettura per C# per specificare e verificare regole architetturali in C# per test automatizzati.
code-cracker — Una libreria di analyzer per C# e VB che usa Roslyn per produrre refactoring, analisi del codice e altre utilità.
CSharpEssentials ⚠️ — C# Essentials è una raccolta di analyzer diagnostici Roslyn, correzioni di codice e refactoring che semplificano il lavoro con le funzionalità del linguaggio C# 6.
Designite ©️ — Designite supporta il rilevamento di vari smell architetturali, di design e di implementazione, il calcolo di varie metriche di qualità del codice e l'analisi delle tendenze.
Gendarme — Gendarme ispeziona programmi e librerie che contengono codice nel formato ECMA CIL (Mono e .NET).
Infer# ⚠️ — InferSharp (chiamato anche Infer#) è un analizzatore statico del codice interprocedurale e scalabile per C#. Grazie alle capacità di Infer di Facebook, questo strumento rileva dereferenziazioni di puntatori nulli e leak di risorse.
Meziantou.Analyzer — Un analyzer Roslyn per applicare alcune buone pratiche in C# in termini di design, utilizzo, sicurezza, prestazioni e stile.
NDepend ©️ — Misura, interroga e visualizza il tuo codice ed evita problemi imprevisti, debito tecnico e complessità.
Puma Scan — Puma Scan fornisce analisi del codice sicura in tempo reale per vulnerabilità comuni (XSS, SQLi, CSRF, LDAPi, crittografia, deserializzazione, ecc.) mentre i team di sviluppo scrivono codice in Visual Studio.
Roslynator — Una raccolta di oltre 190 analyzer e oltre 190 refactoring per C#, basata su Roslyn.
Astrée ©️ — Astrée dimostra automaticamente l'assenza di errori di run-time e di comportamenti concorrenti non validi in applicazioni C/C++. È affidabile per i calcoli in virgola mobile, molto veloce ed estremamente preciso. L'analizzatore verifica anche le regole di codifica MISRA/CERT/CWE/Adaptive Autosar e supporta la qualificazione per ISO 26262, DO-178C livello A e altri standard di sicurezza. Sono disponibili plugin per Jenkins ed Eclipse.
CBMC — Model checker bounded per programmi C, asserzioni definite dall'utente, asserzioni standard, diverse analisi di metriche di copertura.
clang-tidy — Strumento linter per C++ basato su Clang, con la capacità (limitata) di correggere anche i problemi.
clazy — Analizzatore statico del codice orientato a Qt basato sul framework Clang. clazy è un plugin del compilatore che consente a clang di comprendere la semantica di Qt. Ottieni più di 50 avvisi del compilatore relativi a Qt, che vanno dalle allocazioni di memoria non necessarie all'uso improprio delle API, inclusi fix-it per il refactoring automatico.
CMetrics — Misura dimensione e complessità dei file C.
cppcheck — Analisi statica del codice C/C++.
CppDepend ©️ — Misura, interroga e visualizza il tuo codice ed evita problemi imprevisti, debito tecnico e complessità.
cpplint — Checker automatico C++ che segue la guida di stile di Google.
cqmetrics — Metriche di qualità per il codice C.
CScout — Metriche di complessità e qualità per il codice C e del preprocessore C.
ENRE-cpp ⚠️ — ENRE (ENtity Relationship Extractor) è uno strumento per l'estrazione di dipendenze o relazioni tra entità del codice dal codice sorgente. ENRE-cpp è un estrattore di relazioni tra entità per C/C++ basato su @eclipse/CDT. (In sviluppo)
ameba — Uno strumento di analisi statica del codice per Crystal.
crystal — Il compilatore Crystal dispone di funzionalità di linting integrate.
Dart Code Metrics ⚠️ — Linter aggiuntivo per Dart. Riporta metriche del codice, verifica gli anti-pattern e fornisce regole aggiuntive per l'analizzatore Dart.
effective_dart — Regole del linter corrispondenti alle linee guida di Effective Dart
lint ⚠️ — Un insieme di regole lint opinionato e guidato dalla community per progetti Dart e Flutter. Simile a pedantic ma più severo.
Linter for dart ⚠️ — Linter di stile per Dart.
DelphiLint — Un pacchetto per l'IDE Delphi che fornisce analisi del codice e linting in tempo reale, basato su SonarDelphi.
Fix Insight ©️ — Un plugin IDE gratuito per l'analisi statica del codice. Un'edizione Pro include uno strumento a riga di comando per scopi di automazione.
Pascal Analyzer ©️ — Uno strumento di analisi statica del codice con numerosi report. È disponibile una versione gratuita Lite con report limitati.
Pascal Expert ©️ — Plugin IDE per l'analisi del codice. Include un sottoinsieme delle funzionalità di report di Pascal Analyzer ed è disponibile per le versioni di Delphi 2007 e successive.
SonarDelphi — Analizzatore statico Delphi per la piattaforma di qualità del codice SonarQube.
credo — Uno strumento di analisi statica del codice con particolare attenzione alla coerenza del codice e all'insegnamento.
dialyxir — Task Mix per semplificare l'uso di Dialyzer nei progetti Elixir.
sobelow — Analisi statica incentrata sulla sicurezza per il framework Phoenix.
elm-analyse ⚠️ — Uno strumento che ti consente di analizzare il tuo codice Elm, individuare carenze e applicare le migliori pratiche.
elm-review — Analizza interi progetti Elm, con particolare attenzione a regole condivisibili e personalizzate scritte in Elm che aggiungono garanzie che il compilatore Elm non fornisce.
dialyzer — Il DIALYZER, un DIscrepancy AnaLYZer per programmi ERlang. Dialyzer è uno strumento di analisi statica che identifica discrepanze software, come errori di tipo definitivi, codice diventato morto o irraggiungibile a causa di errori di programmazione, e test superflui, in singoli moduli Erlang o interi (insiemi di) applicazioni. Dialyzer avvia la sua analisi da bytecode BEAM compilato in modalità debug o da codice sorgente Erlang. Il file e il numero di riga di una discrepanza vengono riportati insieme a un'indicazione di cosa riguarda la discrepanza. Dialyzer basa la sua analisi sul concetto di success typings, che consente di emettere avvisi affidabili (sound) (nessun falso positivo).
elvis — Revisore di stile per Erlang.
Primitive Erlang Security Tool (PEST) ⚠️ — Uno strumento per eseguire una scansione di base del codice sorgente Erlang e segnalare eventuali chiamate di funzione che potrebbero rendere insicuro il codice Erlang.
fantomas — Formattatore di codice sorgente F#.
FSharpLint — Strumento lint per F#.
ionide-analyzers — Una raccolta di analizzatori F#, realizzati con FSharp.Analyzers.SDK.
Fortitude — Linter per Fortran, ispirato a (e basato su) Ruff, e basato sulle migliori pratiche della community. Supporta l'ultimo standard Fortran (2023).
fprettify — Auto-formattatore per codice sorgente fortran moderno, scritto in Python. Fprettify è uno strumento che fornisce spazi bianchi, indentazione e allineamento dei delimitatori coerenti nel codice, inclusa la capacità di cambiare maiuscole/minuscole e gestire le direttive del preprocessore, il tutto preservando la cronologia delle revisioni e testato per l'integrazione con gli editor.
i-Code CNES for Fortran ⚠️ — Uno strumento open source di analisi statica del codice per Fortran 77, Fortran 90 e Shell.
aligncheck — Trova struct impacchettate in modo inefficiente.
bodyclose — Verifica che il corpo della risposta HTTP sia chiuso.
deadcode — Trova codice inutilizzato.
dingo-hunter ⚠️ — Analizzatore statico per trovare deadlock in Go.
dogsled — Trova assegnazioni/dichiarazioni con troppi identificatori vuoti.
dupl — Segnala codice potenzialmente duplicato.
errcheck — Verifica che i valori di ritorno degli errori vengano utilizzati.
errwrap ⚠️ — Avvolge e corregge gli errori Go con la nuova direttiva verb %w. Questo strumento analizza le chiamate a fmt.Errorf() e segnala le chiamate che contengono una direttiva verb diversa dalla nuova direttiva verb %w introdotta in Go v1.13. È anche in grado di riscrivere le chiamate per utilizzare la nuova direttiva verb di wrapping %w.
flen — Ottieni informazioni sulla lunghezza delle funzioni in un pacchetto Go.
Go Meta Linter ⚠️ — Esegui contemporaneamente strumenti lint Go e normalizza il loro output. Usa golangci-lint per i nuovi progetti.
brittany ⚠️ — Formattatore di codice sorgente Haskell.
HLint — HLint è uno strumento per suggerire possibili miglioramenti al codice Haskell.
Liquid Haskell — Liquid Haskell è un type checker a raffinamento (refinement type) per programmi Haskell.
Stan — Stan è uno strumento a riga di comando per analizzare progetti Haskell e riportare le vulnerabilità scoperte in modo utile, con possibili soluzioni per i problemi rilevati.
Weeder — Uno strumento per rilevare export morti o import di pacchetti nel codice Haskell.
Checker Framework — Type-checking pluggable per Java. Non è solo un cercatore di bug, ma uno strumento di verifica che offre una garanzia di correttezza. Include 27 sistemi di tipi predefiniti e consente agli utenti di definire il proprio sistema di tipi; il manuale elenca oltre 30 sistemi di tipi contribuiti dagli utenti.
checkstyle — Verifica che il codice sorgente Java aderisca a uno standard di codifica o a un insieme di regole di validazione (migliori pratiche).
ck — Calcola le metriche object-oriented di Chidamber e Kemerer elaborando i file sorgente Java.
ckjm — Calcola le metriche object-oriented di Chidamber e Kemerer elaborando il bytecode dei file Java compilati.
CogniCrypt ⚠️ — Verifica il codice sorgente e il bytecode Java per usi errati delle API crittografiche.
Dataflow Framework — Un framework di dataflow di livello industriale per Java. Il Dataflow Framework è utilizzato nel Checker Framework, in Error Prone di Google, in NullAway di Uber, in Nullsafe di Meta e in altri contesti. È distribuito con il Checker Framework.
DesigniteJava ©️ — DesigniteJava supporta il rilevamento di vari smell architetturali, di design e di implementazione, oltre al calcolo di varie metriche di qualità del codice.
Diffblue ©️ — Diffblue è un'azienda di software che fornisce soluzioni di analisi del codice e testing basate sull'intelligenza artificiale per team di sviluppo software. La sua tecnologia aiuta gli sviluppatori ad automatizzare i test, trovare bug e ridurre il lavoro manuale nei loro processi di sviluppo software. Il prodotto principale dell'azienda, Diffblue Cover, utilizza l'AI per generare ed eseguire unit test per codice Java, aiutando a individuare errori e migliorare la qualità del codice.
Doop — Doop è un framework dichiarativo per l'analisi statica di programmi Java/Android, incentrato su algoritmi di pointer analysis. Doop offre un'ampia varietà di analisi e anche l'infrastruttura circostante per eseguire un'analisi end-to-end (generazione dei fatti, elaborazione, statistiche, ecc.).
aether ⚠️ — Esegui lint, analizza, normalizza, trasforma, metti in sandbox, esegui, esegui passo-passo e visualizza JavaScript utente, in node o nel browser.
Closure Compiler — Uno strumento compilatore per aumentare l'efficienza, ridurre le dimensioni e fornire avvisi sul codice nei file JavaScript.
ClosureLinter ⚠️ — Garantisce che tutto il codice JavaScript del tuo progetto segua le linee guida della Guida allo stile JavaScript di Google. Può anche correggere automaticamente molti errori comuni.
complexity-report ⚠️ — Analisi della complessità software per progetti JavaScript.
DeepScan ©️ — Un analizzatore per JavaScript che si concentra su errori di runtime e problemi di qualità piuttosto che su convenzioni di codifica.
es6-plato ⚠️ — Visualizza la complessità del sorgente JavaScript (ES6).
escomplex — Analisi della complessità software degli alberi sintattici astratti della famiglia JavaScript.
Esprima ⚠️ — Infrastruttura di parsing ECMAScript per analisi multiuso.
flow — Un controllore statico dei tipi per JavaScript.
hegel ⚠️ — Un controllore statico dei tipi per JavaScript con un'enfasi sull'inferenza dei tipi e sui sistemi di tipi forti.
jshint ℹ️ — Rileva errori e problemi potenziali nel codice JavaScript e applica le convenzioni di codifica del tuo team.
JSLint ℹ️ — Lo strumento per la qualità del codice JavaScript.
JSPrime ⚠️ — Strumento di analisi statica della sicurezza.
JET — Sistema di inferenza statica dei tipi per rilevare bug e instabilità dei tipi.
StaticLint — Analisi statica del codice per Julia
detekt — Analisi statica del codice per codice Kotlin.
diktat ⚠️ — Standard di codifica rigoroso per Kotlin e un linter che rileva e corregge automaticamente i code smell.
ktfmt — Un programma che riformatta il codice sorgente Kotlin per conformarsi allo standard comunitario comune per le convenzioni del codice Kotlin. Un plugin IntelliJ ktfmt è disponibile dal repository dei plugin. Per installarlo, vai alle impostazioni del tuo IDE e seleziona la categoria Plugin. Fai clic sulla scheda Marketplace, cerca il plugin ktfmt e fai clic sul pulsante Installa.
ktlint — Un linter Kotlin anti-bikeshedding con formattatore integrato.
luacheck — Uno strumento per il linting e l'analisi statica del codice Lua.
lualint — lualint esegue analisi statica basata su luac dell'uso delle variabili globali nel codice sorgente Lua.
Luanalysis ⚠️ — Un IDE per lo sviluppo Lua tipizzato staticamente.
MISS_HIT ⚠️ — MISS_HIT è un toolkit gratuito e open-source per la qualità del codice per MATLAB, Simulink e Octave. Include MH Style (controllore di stile e formattatore), MH Metrics (metriche di complessità), MH Lint (analisi statica), MH Trace (tracciabilità dei requisiti) e MH Copyright (gestione del copyright). Progettato per funzionare in modo autonomo senza richiedere l'installazione di MATLAB/Octave.
mlint ©️ — Controlla i file di codice MATLAB per possibili problemi.
DrNim — DrNim combina il frontend Nim con il motore di dimostrazione Z3 per consentire la verifica/validazione del software scritto in Nim.
nimfmt ⚠️ — Formattatore / linter / controllore di stile per codice Nim
Sys — Uno strumento statico/simbolico per trovare bug nel codice (di browser). Utilizza l'AST LLVM per trovare bug come l'accesso a memoria non inizializzata.
VeriFast — Uno strumento per la verifica formale modulare delle proprietà di correttezza di programmi C e Java single-thread e multithread annotati con precondizioni e postcondizioni scritte in logica di separazione. Per esprimere specifiche ricche, il programmatore può definire tipi di dati induttivi, funzioni pure ricorsive primitive su questi tipi e predicati astratti di logica di separazione.
CakeFuzzer — Strumento di test di sicurezza per applicazioni web basate su CakePHP. CakeFuzzer impiega un insieme predefinito di attacchi che vengono modificati casualmente prima dell'esecuzione. Sfruttando la sua profonda conoscenza del framework Cake PHP, Cake Fuzzer lancia attacchi su tutti i possibili punti di ingresso dell'applicazione.
churn-php — Aiuta a scoprire buoni candidati per il refactoring.
composer-dependency-analyser — Rilevamento rapido dei problemi di dipendenza di composer.
dephpend — Strumento di analisi delle dipendenze.
deprecation-detector — Trova utilizzi di codice (Symfony) deprecato.
deptrac — Applica regole per le dipendenze tra livelli software.
DesignPatternDetector — Rilevamento di design pattern nel codice PHP.
EasyCodingStandard — Combina PHP_CodeSniffer e PHP-CS-Fixer.
Enlightn ⚠️ — Uno strumento di analisi statica e dinamica per applicazioni Laravel che fornisce raccomandazioni per migliorare le prestazioni, la sicurezza e l'affidabilità del codice delle app Laravel. Contiene 120 controlli automatici.
exakat — Un motore automatizzato di revisione del codice per PHP.
GrumPHP — Controlla il codice a ogni commit.
larastan — Aggiunge l'analisi statica a Laravel migliorando la produttività degli sviluppatori e la qualità del codice. È un wrapper attorno a PHPStan.
mago — Mago è una toolchain completa per PHP, scritta in Rust, progettata da zero per le massime prestazioni.
✨ Un formattatore velocissimo che formatta automaticamente il tuo codice secondo PER-CS, ponendo fine per sempre ai dibattiti sullo stile. - 🔎 Un linter intelligente che individua problemi stilistici, incongruenze e code smell prima che diventino problemi. - 🔬 Un potente analizzatore statico che trova errori di tipo e bug logici nel tuo codice senza che tu debba mai eseguirlo. - 🛡️ Un robusto guardiano architetturale che applica regole di dipendenza e convenzioni strutturali.
Mondrian ⚠️ — Un insieme di strumenti di analisi statica e refactoring che utilizzano la teoria dei grafi.
Perl::Analyzer — Perl-Analyzer è un insieme di programmi e moduli che consentono agli utenti di analizzare e visualizzare codebase Perl fornendo informazioni su namespace e le loro relazioni, dipendenze, ereditarietà e metodi implementati, ereditati e ridefiniti nei package, nonché chiamate a metodi da package genitori tramite SUPER.
Perl::Critic — Critica il codice sorgente Perl per le best practice.
perltidy — Perltidy è uno script Perl che indentia e riformatta gli script Perl per renderli più facili da leggere. La formattazione può essere controllata con parametri da riga di comando. Le impostazioni predefinite dei parametri seguono approssimativamente i suggerimenti della Perl Style Guide. Oltre a riformattare gli script, Perltidy può essere di grande aiuto nell'individuare errori con parentesi graffe, tonde e quadre mancanti o extra, perché è molto bravo a localizzare gli errori.
zarn — Uno strumento leggero di analisi statica della sicurezza per moderne app Perl
autoflake — Autoflake rimuove import e variabili inutilizzati dal codice Python.
autopep8 — Uno strumento che formatta automaticamente il codice Python per conformarsi alla guida di stile PEP 8. Utilizza l'utility pycodestyle per determinare quali parti del codice devono essere formattate.
bandit — Uno strumento per trovare problemi di sicurezza comuni nel codice Python.
bellybutton — Un motore di linting che supporta regole personalizzate specifiche del progetto.
Black — L'inesorabile formattatore di codice Python.
Bowler — Refactoring sicuro del codice per il Python moderno. Bowler è uno strumento di refactoring per manipolare Python a livello di albero sintattico. Consente modifiche al codice sicure e su larga scala, garantendo che il codice risultante compili e funzioni. Fornisce sia una semplice interfaccia a riga di comando sia un'API fluente in Python per generare modifiche complesse al codice.
ciocheck ⚠️ — Linter, formattatore e helper per suite di test. Come linter, è un wrapper attorno a pep8, pydocstyle, flake8 e pylint.
cohesion ⚠️ — Uno strumento per misurare la coesione delle classi Python.
deal — Design by contract per Python. Scrivi codice senza bug. Aggiungendo qualche decoratore al tuo codice, ottieni gratuitamente test, analisi statica, verifica formale e molto altro.
CodeDepends — Analisi statica del codice per R.
cyclocomp — Quantifica la complessità ciclomatica di funzioni / espressioni R.
flowR — Un program slicer e un analizzatore di flusso di dati per il linguaggio di programmazione R. Il suo slicer consente di ridurre un programma complesso alle sole parti rilevanti per un'attività specifica (ad esempio, la generazione di un singolo grafico o di un insieme di grafici, un test di significatività, ...). L'analisi del flusso di dati fornisce una visione dettagliata della semantica del codice R che può migliorare notevolmente altre analisi. Per usare flowR, dai un'occhiata all'estensione per Visual Studio Code, all'Addin per RStudio, all'immagine Docker o al pacchetto R.
goodpractice — Analizza il codice sorgente dei pacchetti R e fornisce raccomandazioni sulle migliori pratiche.
lintr — Analisi statica del codice per R.
R Language Server — Fornisce completamento del codice, refactoring, folding, diagnostica (con lintr) e altro per R.
rco — Ottimizzatore delle prestazioni per codice R (con GUI).
styler — Formattazione di file sorgente R e pretty-printing del codice R.
Active Record Doctor — Identifica i problemi del database prima che arrivino in produzione.
brakeman — Uno scanner di vulnerabilità di sicurezza tramite analisi statica per applicazioni Ruby on Rails.
Bullet — Aiuta a eliminare le query N+1 e l'eager loading non utilizzato.
bundler-audit — Controlla Gemfile.lock per gemme con vulnerabilità di sicurezza segnalate in Ruby Advisory Database.
cane ⚠️ — Controllo delle soglie di qualità del codice come parte della tua build.
Churn ⚠️ — Un progetto per fornire i file, le classi e i metodi soggetti a churn per un dato checkin. Nel tempo lo strumento accumula la cronologia dei churn per indicare quante volte un file, una classe o un metodo cambia durante la vita di un progetto.
DatabaseConsistency — Lo strumento per evitare vari problemi dovuti a incongruenze e inefficienze tra lo schema del database e i modelli dell'applicazione.
dawnscanner — Uno scanner di sicurezza tramite analisi statica per applicazioni web scritte in Ruby. Supporta i framework Sinatra, Padrino e Ruby on Rails.
ERB Lint — Esegui il lint dei tuoi file ERB o HTML
ERB::Formatter — Formatta i file ERB con velocità e precisione.
Fasterer — Controllore di idiomi Ruby comuni.
flay — Flay analizza il codice per individuare somiglianze strutturali.
flog — Flog segnala il codice più tormentato in un report di dolore facile da leggere. Più alto è il punteggio, più il codice è in sofferenza.
C2Rust — C2Rust ti aiuta a migrare codice conforme a C99 verso Rust. Il traduttore (o transpiler) produce codice Rust unsafe che rispecchia fedelmente il codice C di input.
cargo udeps — Trova le dipendenze non utilizzate in Cargo.toml. Stampa una riga "unused crates" che elenca le crate, oppure stampa una riga che indica che nessuna crate è inutilizzata.
cargo-audit — Controlla Cargo.lock per crate con vulnerabilità di sicurezza segnalate al RustSec Advisory Database.
cargo-bloat ⚠️ — Scopri cosa occupa più spazio nel tuo eseguibile. Supporta binari ELF (Linux, BSD), Mach-O (macOS) e PE (Windows).
cargo-breaking — cargo-breaking confronta l'API pubblica di una crate tra due branch diversi, mostra cosa è cambiato e suggerisce la versione successiva secondo semver.
cargo-call-stack — Analisi statica completa dello stack dell'intero programma. Lo strumento produce il grafo delle chiamate completo di un programma come file dot.
cargo-deny — Un plugin cargo per eseguire il lint delle tue dipendenze. Può essere usato come strumento da riga di comando, crate Rust o azione GitHub per CI. Controlla informazioni di licenza valide, crate duplicate, vulnerabilità di sicurezza e altro.
cargo-expand — Subcomando cargo per mostrare il risultato dell'espansione delle macro e dell'espansione #[derive] applicata alla crate corrente. È un wrapper attorno a un comando del compilatore più verboso.
cargo-geiger — Un plugin cargo per analizzare l'uso di codice Rust unsafe. Fornisce un output statistico per supportare l'audit di sicurezza.
cargo-inspect ⚠️ — Ispeziona il codice Rust senza zucchero sintattico per vedere cosa fa il compilatore dietro le quinte.
cargo-semver-checks — Scansiona le release delle tue crate Rust alla ricerca di violazioni semver. Può essere usato direttamente tramite CLI, come GitHub Action nella CI, oppure tramite release manager come . Ha trovato violazioni semver in su crates.io.
linter-rust ⚠️ — Esegui il lint dei tuoi file Rust in Atom, usando rustc e cargo.
lockbud — Rileva staticamente bug di deadlock in Rust. Attualmente rileva due tipi comuni di bug di deadlock: doublelock e lock in ordine contrastante. Stampa i bug in formato JSON insieme alla posizione nel codice sorgente e una spiegazione di ciascun bug.
MIRAI ⚠️ — Un interprete astratto che opera sul linguaggio intermedio di livello medio di Rust e fornisce avvisi basati sull'analisi del taint.
prae ⚠️ — Fornisce una comoda macro che consente di generare wrapper di tipi che promettono di mantenere sempre gli invarianti arbitrari che hai specificato.
Prusti ⚠️ — Un verificatore statico per Rust, basato sull'infrastruttura di verifica Viper. Di default Prusti verifica l'assenza di panics dimostrando che istruzioni come unreachable!() e panic!() non sono raggiungibili.
Rudra — Rilevamento della sicurezza della memoria e del comportamento indefinito in Rust. È in grado di analizzare singoli pacchetti Rust e tutti i pacchetti su crates.io.
Rust Language Server ⚠️ — Supporta funzionalità come 'goto definition', ricerca di simboli, riformattazione e completamento del codice, e consente ridenominazioni e refactoring.
rust-analyzer — Supporta funzionalità come 'goto definition', inferenza dei tipi, ricerca di simboli, riformattazione e completamento del codice, e consente ridenominazioni e refactoring.
rust-audit — Esegue l'audit di binari Rust per bug noti o vulnerabilità di sicurezza. Funziona incorporando i dati sull'albero delle dipendenze (Cargo.lock) in formato JSON in una sezione dedicata del linker all'interno dell'eseguibile compilato.
rustfix — Legge e applica i suggerimenti forniti da rustc (e i lint di terze parti, come quelli offerti da clippy).
rustfmt — Uno strumento per formattare il codice Rust secondo le linee guida di stile.
RustViz — RustViz è uno strumento che genera visualizzazioni da semplici programmi Rust per aiutare gli utenti a comprendere meglio il meccanismo di Lifetime e Borrowing di Rust. Genera file SVG con indicatori grafici che si integrano con mdbook per visualizzare il flusso di dati nei programmi Rust.
dbcritic — dbcritic trova problemi in uno schema di database, come l'assenza di un vincolo di chiave primaria in una tabella.
holistic — Più di 1,300 regole per analizzare query SQL. Prende una definizione di schema SQL e il codice sorgente delle query per generare raccomandazioni di miglioramento. Rileva code smell, indici non utilizzati, tabelle non utilizzate, viste, viste materializzate e altro.
pgspot — Individua vulnerabilità negli script di estensione Postgres. Trova utilizzi non sicuri di search_path e creazione non sicura di oggetti negli script di estensione PostgreSQL o in qualsiasi altro codice SQL PostgreSQL.
sleek — Sleek è uno strumento CLI per formattare SQL. Ti aiuta a mantenere uno stile coerente nel tuo codice SQL, migliorando leggibilità e produttività. Il lavoro pesante è svolto dalla crate sqlformat.
sqlcheck ⚠️ — Identifica automaticamente gli anti-pattern nelle query SQL.
SQLFluff — Linter e formatter SQL con più dialetti.
sqlint — Semplice linter SQL.- squawk — Linter per PostgreSQL, focalizzato sulle migrazioni. Previene i tempi di inattività imprevisti causati dalle migrazioni del database e promuove le best practice relative a schemi Postgres e SQL.
tsqllint ⚠️ — Linter specifico per T-SQL.
TSqlRules ⚠️ — Regole statiche di analisi del codice TSQL per SQL Server.
Visual Expert ©️ — Analisi del codice per PowerBuilder, Oracle e SQL Server. Esplora, analizza e documenta il codice
linter ⚠️ — Linter è un plugin del compilatore di analisi statica per Scala che aggiunge controlli in fase di compilazione per vari possibili bug, inefficienze e problemi di stile.
Scalastyle — Scalastyle esamina il tuo codice Scala e segnala potenziali problemi.
scapegoat — Plugin del compilatore Scala per l'analisi statica del codice.
WartRemover — Un flessibile strumento di linting per codice Scala.
bashate — Applicazione dello stile di codice per programmi bash. Il formato di output mira a seguire il formato di output predefinito di pycodestyle (pep8).
i-Code CNES for Shell ⚠️ — Uno strumento open source di analisi statica del codice per Shell e Fortran (77 e 90).
kmdr — Strumento CLI per imparare i comandi dal tuo terminale. kmdr fornisce una scomposizione dei comandi con ogni attributo spiegato.
sh — Un parser, formatter e interprete per shell con supporto a bash; include shfmt
shellcheck — ShellCheck, uno strumento di analisi statica che fornisce avvisi e suggerimenti per script di shell bash/sh.
shellharden — Un evidenziatore di sintassi e uno strumento per semi-automatizzare la riscrittura di script per la conformità a ShellCheck, focalizzato principalmente sull'uso delle virgolette.
SwiftFormat — Una libreria e uno strumento di formattazione da riga di comando per riformattare codice Swift.
SwiftLint — Uno strumento per applicare lo stile e le convenzioni di Swift.
Tailor ⚠️ — Uno strumento di analisi statica e lint per codice sorgente scritto nel linguaggio di programmazione Swift di Apple.
Frink — Un programma di formattazione e controllo statico per Tcl (può abbellire il programma, minimizzarlo, offuscarlo o semplicemente verificarne la correttezza).
Nagelfar — Un controllore statico della sintassi per Tcl.
tclchecker — Un modulo di analisi statica della sintassi (come parte di TDK).
Angular ESLint — Linter per progetti Angular
Codelyzer ⚠️ — Un insieme di regole tslint per l'analisi statica del codice di progetti Angular 2 TypeScript.
ENRE-ts ⚠️ — ENRE (ENtity Relationship Extractor) è uno strumento per l'estrazione di dipendenze o relazioni tra entità del codice dal codice sorgente. ENRE-ts è un estrattore di relazioni tra entità per ECMAScript e TypeScript basato su @babel/parser.
fta — Analisi statica basata su Rust per progetti TypeScript
stc ⚠️ — Velocissimo type checker TypeScript scritto in Rust
tslint ⚠️ — TSLint è stato deprecato a partire dal 2019. Consulta questo issue per maggiori dettagli. typescript-eslint è ora la soluzione migliore per il linting di TypeScript.
TSLint è uno strumento di analisi statica estensibile che controlla il codice TypeScript per errori di leggibilità, manutenibilità e funzionalità. È ampiamente supportato negli editor e nei sistemi di build moderni e può essere personalizzato con le proprie regole di lint, configurazioni e formatter.
tslint-clean-code — Un insieme di regole TSLint ispirate al manuale Clean Code.
tslint-microsoft-contrib ⚠️ — Un insieme di regole tslint per l'analisi statica del codice di progetti TypeScript mantenuto da Microsoft.
TypeScript Call Graph — CLI per generare un grafico interattivo di funzioni e chiamate dai tuoi file TypeScript
TypeScript ESLint — Estensione del linguaggio TypeScript per eslint.
zod — Validazione di schema TypeScript-first con inferenza statica dei tipi. L'obiettivo è eliminare le dichiarazioni di tipo duplicate. Con Zod dichiari un validatore una sola volta e Zod dedurrà automaticamente il tipo statico TypeScript. È facile comporre tipi più semplici in strutture dati complesse.
Icarus Verilog ⚠️ — Uno strumento di simulazione e sintesi Verilog che opera compilando codice sorgente scritto in Verilog IEEE-1364 in un formato di destinazione
svls — Un'implementazione del Language Server Protocol per Verilog e SystemVerilog, incluse capacità di lint.
verible-linter-action ⚠️ — Linting automatico di SystemVerilog nelle GitHub Actions con l'aiuto di Verible. Utilizzato per eseguire il lint di file sorgente Verilog e SystemVerilog e commentare automaticamente le righe di codice errate nelle Pull Request.
Verilator — Uno strumento che converte Verilog in un modello comportamentale accurato a livello di ciclo in C++ o SystemC. Esegue controlli di qualità del codice tramite lint.
vscode-verilog-hdl-support — Supporto per Verilog HDL/SystemVerilog/Bluespec SystemVerilog per VS Code. Fornisce evidenziazione della sintassi e supporto al linting da Icarus Verilog, Vivado Logical Simulation, Modelsim e Verilator
Twiggy — Analizza il call graph di un binario per profilare la dimensione del codice. L'obiettivo è ridurre la dimensione dei binari wasm.
wasm-language-tools — WebAssembly Language Tools mira a fornire e migliorare l'esperienza di modifica del WebAssembly Text Format. Fornisce anche un formatter pronto all'uso (chiamato anche pretty printer) per il WebAssembly Text Format.
ale — Motore di lint asincrono per Vim e NeoVim con supporto per molti linguaggi.
Android Studio — Basato su IntelliJ IDEA, include strumenti per Android tra cui Android Lint.
AppChecker ©️ — Analisi statica per C/C++/C#, PHP e Java.
Application Inspector ©️ — Analisi statica del codice commerciale che genera exploit per verificare le vulnerabilità.
ApplicationInspector — Crea report su oltre 400 modelli di regole per il rilevamento delle funzionalità (ad es. l'uso della crittografia o del version control nelle app).
ArchUnit — Esegui unit test sulla tua architettura Java o Kotlin.
ast-grep — ast-grep è un potente strumento progettato per gestire codice su larga scala utilizzando Abstract Syntax Trees (AST). Pensalo come un ibrido tra grep, eslint e codemod, con la capacità di cercare, eseguire lint e riscrivere codice basandosi sulla sua struttura piuttosto che sul testo semplice. Supporta più linguaggi ed è progettato per essere estensibile, permettendoti di registrare linguaggi personalizzati.
Atom-Beautify ⚠️ — Abbellisci HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#, Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL e altro nell'editor Atom.
autocorrect — Un linter e formatter per aiutarti a migliorare la scrittura, correggendo spazi, parole e punteggiatura tra CJK (cinese, giapponese, coreano).
Axivion Bauhaus Suite ©️ — Individua punti del codice soggetti a errori, violazioni di stile, codice clonato o morto, dipendenze cicliche e altro per C/C++, C#/.NET, Java e Ada 83/Ada 95.
Bearer — Strumento open source di analisi statica del codice per scoprire, filtrare e dare priorità a rischi e vulnerabilità di sicurezza che portano all'esposizione di dati sensibili (PII, PHI, PD). Altamente configurabile e facilmente estensibile, progettato per team di sicurezza e ingegneria.
ENRE-cpp ⚠️ — ENRE (ENtity Relationship Extractor) è uno strumento per l'estrazione di dipendenze o relazioni tra entità del codice dal codice sorgente. ENRE-cpp è un estrattore di relazioni tra entità per C/C++ basato su @eclipse/CDT. (In sviluppo)
ESBMC — ESBMC è un model checker open source, con licenza permissiva, basato su satisfiability modulo theories e limitato dal contesto, per la verifica di programmi C/C++ single e multi-thread.
flawfinder — Trova possibili debolezze di sicurezza.
flint++ ⚠️ — Porting multipiattaforma e senza dipendenze di flint, un programma lint per C++ sviluppato e usato su Facebook.
Frama-C — Un analizzatore statico affidabile ed estensibile per il codice C.
GCC — Il compilatore GCC dispone di funzionalità di analisi statica dalla versione 10. Questa opzione è disponibile solo se GCC è stato configurato con il supporto dell'analizzatore abilitato. Può anche emettere le sue diagnostiche in un file JSON nel formato SARIF (dalla v13).
Goblint — Un analizzatore statico per l'analisi di programmi C multi-thread. Il suo obiettivo principale è il rilevamento delle race condition, ma segnala anche altri errori di run-time, come buffer overflow e dereferenziazioni di puntatori nulli.
Helix QAC ©️ — Analisi statica di livello enterprise per software embedded. Supporta gli standard di codifica MISRA, CERT e AUTOSAR.
IKOS — Un analizzatore statico affidabile per codice C/C++ basato su LLVM.
KLEE — Un motore di esecuzione simbolica dinamica costruito sull'infrastruttura del compilatore LLVM. Può generare automaticamente casi di test per i programmi in modo che questi esercitino quanto più possibile del programma.
LDRA ©️ — Una suite di strumenti che include analisi statica (TBVISION) secondo vari standard, tra cui MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ e regole personalizzate.
MATE ⚠️ — Una suite di strumenti per l'analisi interattiva dei programmi, focalizzata sulla caccia ai bug nel codice C e C++. MATE unifica l'analisi delle vulnerabilità specifiche dell'applicazione e di basso livello usando i code property graph (CPG), consentendo di scoprire vulnerabilità altamente specifiche dell'applicazione che dipendono sia dai dettagli implementativi che dalla semantica di alto livello dei programmi C/C++ presi di mira.
PC-lint ©️ — Analisi statica per C/C++. Gira nativamente su Windows/Linux/MacOS. Analizza codice per praticamente qualsiasi piattaforma, supportando C11/C18 e C++17.
Phasar — Un framework di analisi statica basato su LLVM che include un'analisi taint e type state.
Polyspace Bug Finder ©️ — Identifica errori di run-time, problemi di concorrenza, vulnerabilità di sicurezza e altri difetti nel software embedded C e C++.
Polyspace Code Prover ©️ — Fornisce la verifica del codice che dimostra l'assenza di overflow, divisione per zero, accesso ad array fuori dai limiti e alcuni altri errori di run-time nel codice sorgente C e C++.
scan-build — Frontend per guidare il Clang Static Analyzer integrato in Clang tramite una build regolare.
splint — Checker statico di programmi assistito da annotazioni.
SVF — Uno strumento statico che consente un'analisi delle dipendenze interprocedurale scalabile e precisa per programmi C e C++.
TrustInSoft Analyzer ©️ — Rilevamento esaustivo degli errori di codifica e delle vulnerabilità di sicurezza associate. Include un rilevamento affidabile di comportamenti indefiniti (buffer overflow, accessi ad array fuori dai limiti, dereferenziazioni di puntatori nulli, use-after-free, divisioni per zero, accessi a memoria non inizializzata, overflow con segno, aritmetica dei puntatori non valida, ecc.), verifica del flusso di dati e del flusso di controllo, nonché verifica funzionale completa delle specifiche formali. Sono supportate tutte le versioni di C fino a C18 e di C++ fino a C++20. TrustInSoft Analyzer otterrà la qualificazione ISO 26262 nel Q2 2023 (TCL3). È incluso anche un checker MISRA C.
vera++ ⚠️ — Vera++ è uno strumento programmabile per la verifica, l'analisi e la trasformazione del codice sorgente C++.
SonarAnalyzer.CSharp — Questi analyzer Roslyn ti permettono di produrre Clean Code sicuro, affidabile e manutenibile, aiutandoti a trovare e correggere bug, vulnerabilità e code smell nel tuo codebase.
VSDiagnostics ⚠️ — Una raccolta di analizzatori statici basati su Roslyn che si integra con VS.
Wintellect.Analyzers — Analyzer diagnostici e correzioni di codice per la piattaforma del compilatore .NET ("Roslyn").
ESBMC — ESBMC è un model checker open source, con licenza permissiva, basato su satisfiability modulo theories e limitato dal contesto, per la verifica di programmi C/C++ single e multi-thread.
flawfinder — Trova possibili debolezze di sicurezza.
flint++ ⚠️ — Porting multipiattaforma e senza dipendenze di flint, un programma lint per C++ sviluppato e usato su Facebook.
GCC — Il compilatore GCC dispone di funzionalità di analisi statica dalla versione 10. Questa opzione è disponibile solo se GCC è stato configurato con il supporto dell'analizzatore abilitato. Può anche emettere le sue diagnostiche in un file JSON nel formato SARIF (dalla v13).
Helix QAC ©️ — Analisi statica di livello enterprise per software embedded. Supporta gli standard di codifica MISRA, CERT e AUTOSAR.
IKOS — Un analizzatore statico affidabile per codice C/C++ basato su LLVM.
KLEE — Un motore di esecuzione simbolica dinamica costruito sull'infrastruttura del compilatore LLVM. Può generare automaticamente casi di test per i programmi in modo che questi esercitino quanto più possibile del programma.
LDRA ©️ — Una suite di strumenti che include analisi statica (TBVISION) secondo vari standard, tra cui MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ e regole personalizzate.
MATE ⚠️ — Una suite di strumenti per l'analisi interattiva dei programmi, focalizzata sulla caccia ai bug nel codice C e C++. MATE unifica l'analisi delle vulnerabilità specifiche dell'applicazione e di basso livello usando i code property graph (CPG), consentendo di scoprire vulnerabilità altamente specifiche dell'applicazione che dipendono sia dai dettagli implementativi che dalla semantica di alto livello dei programmi C/C++ presi di mira.
PC-lint ©️ — Analisi statica per C/C++. Gira nativamente su Windows/Linux/MacOS. Analizza codice per praticamente qualsiasi piattaforma, supportando C11/C18 e C++17.
Phasar — Un framework di analisi statica basato su LLVM che include un'analisi taint e type state.
Polyspace Bug Finder ©️ — Identifica errori di run-time, problemi di concorrenza, vulnerabilità di sicurezza e altri difetti nel software embedded C e C++.
Polyspace Code Prover ©️ — Fornisce la verifica del codice che dimostra l'assenza di overflow, divisione per zero, accesso ad array fuori dai limiti e alcuni altri errori di run-time nel codice sorgente C e C++.- scan-build — Frontend per guidare il Clang Static Analyzer integrato in Clang tramite una normale compilazione.
splint — Controllore statico di programmi assistito da annotazioni.
SVF — Uno strumento statico che consente un'analisi delle dipendenze interprocedurale scalabile e precisa per programmi C e C++.
TrustInSoft Analyzer ©️ — Rilevamento esaustivo di errori di codifica e delle relative vulnerabilità di sicurezza. Include un rilevamento corretto (sound) di comportamenti indefiniti (buffer overflow, accessi a array fuori dai limiti, dereferenziamenti di puntatori nulli, use-after-free, divisioni per zero, accessi a memoria non inizializzata, overflow con segno, aritmetica dei puntatori non valida, ecc.), verifica del flusso di dati e del flusso di controllo, nonché verifica funzionale completa delle specifiche formali. Sono supportate tutte le versioni di C fino alla C18 e di C++ fino alla C++20. TrustInSoft Analyzer otterrà la qualifica ISO 26262 nel Q2'2023 (TCL3). È incluso anche un checker MISRA C.
vera++ ⚠️ — Vera++ è uno strumento programmabile per la verifica, l'analisi e la trasformazione di codice sorgente C++.
go tool vet --shadow — Segnala variabili che potrebbero essere state oscurate (shadowed) involontariamente.
go vet — Esamina il codice sorgente Go e segnala costrutti sospetti.
go-consistent ⚠️ — Analizzatore che ti aiuta a rendere i tuoi programmi Go più coerenti.
go-critic — Linter per codice sorgente Go che mantiene controlli attualmente non implementati in altri linter.
go/ast — Il pacchetto ast dichiara i tipi utilizzati per rappresentare gli alberi sintattici per i pacchetti Go.
goast — Strumento di analisi statica basato su Go AST (Abstract Syntax Tree) con Rego.
gochecknoglobals ⚠️ — Verifica che non siano presenti variabili globali.
goconst — Trova stringhe ripetute che potrebbero essere sostituite da una costante.
gocyclo — Calcola la complessità ciclomatica delle funzioni nel codice sorgente Go.
gofmt -s — Verifica se il codice è formattato correttamente e non può essere ulteriormente semplificato.
gofumpt — Applica un formato più rigoroso di gofmt, pur essendo retrocompatibile. In altre parole, gofumpt accetta un sottoinsieme dei formati che gofmt accetta.
Lo strumento è un fork di gofmt a partire da Go 1.19 e richiede Go 1.18 o successivo. Può essere usato come sostituto diretto per formattare il tuo codice Go e l'esecuzione di gofmt dopo gofumpt non dovrebbe produrre modifiche.
gofumpt non aggiungerà mai regole in disaccordo con la formattazione di gofmt. Quindi estendiamo gofmt piuttosto che competere con esso.
goimports — Controlla import di pacchetti mancanti o non referenziati.
gokart — Analisi della sicurezza Golang con particolare attenzione alla minimizzazione dei falsi positivi. È in grado di tracciare l'origine di variabili e argomenti di funzione per determinare se le fonti di input sono sicure.
GolangCI-Lint — Esecutore rapido di linter per Go. Aggrega più linter Go e fornisce una configurazione, una cache e un formato di output unificati. Alternativa a Go Meta Linter.
golint — Stampa errori di stile di codifica nel codice sorgente Go.
goreporter — Esegue contemporaneamente molti linter e normalizza il loro output in un report.
goroutine-inspect — Uno strumento interattivo per analizzare il dump delle goroutine Golang.
gosec (gas) — Ispeziona il codice sorgente alla ricerca di problemi di sicurezza scansionando il Go AST.
gotype — Analisi sintattica e semantica simile al compilatore Go.
govulncheck — Govulncheck segnala le vulnerabilità note che interessano il codice Go. Utilizza l'analisi statica del codice sorgente o della tabella dei simboli di un binario per restringere i report solo a quelle che potrebbero colpire l'applicazione. Per impostazione predefinita, govulncheck effettua richieste al database delle vulnerabilità Go all'indirizzo https://vuln.go.dev. Le richieste al database delle vulnerabilità contengono solo percorsi di moduli, non codice o altre proprietà del tuo programma.
ineffassign — Rileva assegnazioni inefficaci nel codice Go.
interfacer ⚠️ — Suggerisci interfacce più ristrette che possono essere utilizzate.
lll — Segnala righe lunghe.
maligned ⚠️ — Rileva struct che occuperebbero meno memoria se i loro campi fossero ordinati.
misspell — Trova parole inglesi comunemente scritte in modo errato.
nakedret ⚠️ — Trova i naked return.
nargs — Trova argomenti inutilizzati nelle dichiarazioni di funzione.
OSV-Scanner — Scanner di vulnerabilità scritto in Go che utilizza i dati forniti da OSV.dev. Sviluppato da Google per scansionare le dipendenze in più linguaggi e gestori di pacchetti alla ricerca di vulnerabilità note. Supporta la scansione di container, la scansione delle licenze e la correzione guidata. Funziona con lockfile, SBOM e immagini container per identificare problemi di sicurezza.
prealloc — Trova dichiarazioni di slice che potrebbero potenzialmente essere preallocate.
Reviewdog — Uno strumento per pubblicare commenti di revisione da qualsiasi linter in qualsiasi servizio di hosting del codice.
revive — Linter veloce, configurabile, estensibile, flessibile e bello per Go. Sostituto diretto di golint.
safesql ⚠️ — Strumento di analisi statica per Golang che protegge dalle iniezioni SQL.
shisho ⚠️ — Un analizzatore statico di codice leggero progettato per sviluppatori e team di sicurezza. Ti consente di analizzare e trasformare il codice sorgente con un DSL intuitivo simile a sed, ma per il codice.
staticcheck — Analisi statica Go specializzata nel trovare bug, semplificare il codice e migliorare le prestazioni.
structcheck — Trova campi struct inutilizzati.
structslop — Analizzatore statico per Go che consiglia riorganizzazioni dei campi struct per garantire la massima efficienza di spazio/allocazione
test — Mostra la posizione dei fallimenti dei test dal modulo di test stdlib.
unconvert ⚠️ — Rileva conversioni di tipo ridondanti.
unparam — Trova parametri di funzione inutilizzati.
varcheck — Trova variabili globali e costanti inutilizzate.
wsl — Impone righe vuote nei punti giusti.
ENRE-java ⚠️ — ENRE (ENtity Relationship Extractor) è uno strumento per l'estrazione di dipendenze o relazioni tra entità del codice dal codice sorgente. ENRE-java è un ENtity Relationship Extractor per progetti Java basato su @Eclipse JDT/parser.
Error Prone — Cattura errori Java comuni come errori in fase di compilazione.
fb-contrib — Un plugin per FindBugs con rilevatori di bug aggiuntivi.
forbidden-apis — Rileva e vieta invocazioni di specifici metodi/classi/campi (come leggere da uno stream di testo senza charset). Compatibile con Maven/Gradle/Ant.
google-java-format — Riformatta il codice sorgente Java per conformarsi a Google Java Style
HuntBugs ⚠️ — Strumento di analisi statica del bytecode basato su Procyon Compiler Tools, pensato per sostituire FindBugs.
IntelliJ IDEA ©️ — Viene fornito con molte ispezioni per Java e Kotlin e include strumenti per refactoring, formattazione e altro.
JArchitect ©️ — Misura, interroga e visualizza il tuo codice ed evita problemi imprevisti, debito tecnico e complessità.
JBMC — Model checker bounded per Java (bytecode), verifica asserzioni definite dall'utente, asserzioni standard e diverse analisi di metriche di copertura.
JLiSA — Un analizzatore statico per Java basato su interpretazione astratta, costruito sul framework LiSA.
Mariana Trench — Il nostro strumento di analisi statica incentrato sulla sicurezza per applicazioni Android e Java. Mariana Trench analizza il bytecode Dalvik ed è progettato per essere eseguito rapidamente su codebase di grandi dimensioni (decine di milioni di righe di codice). Può trovare vulnerabilità man mano che il codice cambia, prima che venga integrato nel tuo repository.
NullAway — Checker di puntatori nulli basato sui tipi con basso overhead in fase di build; un plugin Error Prone.
OWASP Dependency Check ⚠️ — Verifica le dipendenze per vulnerabilità note e divulgate pubblicamente.
qulice — Combina alcuni strumenti di analisi statica (preconfigurati) (checkstyle, PMD, Findbugs, ...).
RefactorFirst — Identifica e assegna priorità a God Class e classi fortemente accoppiate (Highly Coupled) nei codebase Java che dovresti refactorare per primi.
Soot — Un framework per analizzare e trasformare applicazioni Java e Android.
Spoon — Spoon è una libreria di metaprogrammazione per analizzare e trasformare codice sorgente Java (incluse Java 9, 10, 11, 12, 13, 14). Analizza i file sorgente per costruire un AST ben progettato con una potente API di analisi e trasformazione. Può essere integrato in Maven e Gradle.
SpotBugs — SpotBugs è il successore di FindBugs. Uno strumento di analisi statica per cercare bug nel codice Java.- steady ⚠️ — Analizza le tue applicazioni Java alla ricerca di dipendenze open-source con vulnerabilità note, utilizzando sia l'analisi statica che i test per determinare il contesto e l'utilizzo del codice per una maggiore accuratezza.
Violations Lib — Libreria Java per il parsing di file di report da analisi statica del codice. Utilizzata da molti plugin Jenkins, Maven e Gradle.
NodeJSScan ⚠️ — Uno scanner statico di sicurezza per applicazioni Node.js basato su libsast e semgrep, che si basa sullo strumento CLI njsscan. Include un'interfaccia utente con vari dashboard sullo stato di sicurezza di un'applicazione.
plato ⚠️ — Visualizza la complessità del sorgente JavaScript.
Polymer-analyzer — Un framework di analisi statica per Web Components.
retire.js — Scanner che rileva l'uso di librerie JavaScript con vulnerabilità note.
RSLint ⚠️ — Un linter JavaScript (in lavorazione) scritto in Rust, progettato per essere il più veloce possibile, personalizzabile e facile da usare.
standard — Un modulo npm che verifica problemi di stile Javascript.
tern — Un analizzatore di codice JavaScript per un supporto linguistico profondo e multi-editor.
TypL ⚠️ — Con TypL, scrivi semplicemente JS completamente standard e lo strumento determina i tuoi tipi tramite una potente inferenza.
xo — Wrapper ESLint opinionato ma configurabile con molte funzionalità incluse. Impone codice rigoroso e leggibile.
yardstick ⚠️ — Metriche del codice Javascript.
parallel-lint — Questo strumento controlla la sintassi dei file PHP più velocemente del controllo seriale con un output più accattivante.
Parse — Uno scanner statico di sicurezza.
pdepend — Calcola metriche software come la complessità ciclomatica per codice PHP.
phan — Un moderno analizzatore statico di etsy.
PHP Architecture Tester — Strumento di test dell'architettura per PHP facile da usare.
PHP Assumptions — Controlla le assunzioni deboli.
PHP Coding Standards Fixer — Corregge il tuo codice secondo standard come PSR-1, PSR-2 e lo standard Symfony.
PHP Insights — Controlli immediati della qualità PHP dalla tua console. Analisi della qualità del codice e dello stile di codifica, oltre a una panoramica dell'architettura del codice e della sua complessità.
Php Inspections (EA Extended) — Un analizzatore statico del codice per PHP.
PHP Refactoring Browser — Aiuto per il refactoring.
PHP Semantic Versioning Checker — Suggerisce una versione successiva secondo il semantic versioning.
PHP-Parser — Un parser PHP scritto in PHP.
php-speller — Libreria di controllo ortografico per PHP.
PHP-Token-Reflection ⚠️ — Libreria che emula la reflection interna di PHP.
php7cc ⚠️ — Controllore di compatibilità con PHP 7.
php7mar ⚠️ — Aiuta gli sviluppatori a migrare rapidamente il proprio codice a PHP 7.
PHP_CodeSniffer ⚠️ — Rileva violazioni di un insieme definito di standard di codifica.
PHPArkitect — PHPArkitect ti aiuta a mantenere la tua codebase PHP coerente e solida, permettendoti di aggiungere alcuni controlli sui vincoli architetturali al tuo flusso di lavoro. Puoi esprimere il vincolo che desideri applicare in codice PHP semplice e leggibile.
phpca ⚠️ — Trova l'uso di estensioni non integrate.
phpcpd ⚠️ — Rilevatore di copia/incolla per codice PHP.
phpdcd ⚠️ — Rilevatore di codice morto (DCD) per codice PHP.
PhpDependencyAnalysis ⚠️ — Costruisce un grafo delle dipendenze per un progetto.
PhpDeprecationDetector ⚠️ — Analizzatore di codice PHP per cercare problemi con funzionalità deprecate nelle versioni più recenti dell'interprete. Trova oggetti rimossi (funzioni, variabili, costanti e direttive ini), funzionalità di funzioni deprecate e uso di nomi o trucchi vietati (ad esempio identificatori riservati nelle versioni più recenti).
phpdoc-to-typehint ⚠️ — Aggiunge type hint scalari e tipi di ritorno a progetti PHP esistenti utilizzando le annotazioni PHPDoc.
phpDocumentor — Analizza il codice sorgente PHP per generare documentazione.
phploc ⚠️ — Uno strumento per misurare rapidamente le dimensioni e analizzare la struttura di un progetto PHP.
PHPMD — Trova possibili bug nel tuo codice.
PhpMetrics — Calcola e visualizza varie metriche di qualità del codice.
phpmnd — Aiuta a rilevare i magic number.
PHPQA — Uno strumento per eseguire strumenti di QA (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics).
phpqa - jakzal — Molti strumenti per l'analisi statica PHP in un unico container.
phpqa - jmolivas — Strumento CLI analizzatore tutto-in-uno PHPQA.
phpsa ⚠️ — Strumento di analisi statica per PHP.
PHPStan — Strumento di analisi statica PHP - scopri bug nel tuo codice senza eseguirlo!
Progpilot — Uno strumento di analisi statica per scopi di sicurezza.
Psalm — Strumento di analisi statica per trovare errori di tipo nelle applicazioni PHP.
Qafoo Quality Analyzer ⚠️ — Visualizza metriche e codice sorgente.
rector — Aggiornamenti istantanei e refactoring automatizzato di qualsiasi codice PHP 5.3+. Aggiorna il tuo codice per PHP 7.4, 8.0 e oltre. Rector promette un basso tasso di falsi positivi perché cerca pattern AST (albero sintattico astratto) definiti in modo ristretto. Il caso d'uso principale è affrontare il debito tecnico nel codice legacy e rimuovere il codice morto. Rector fornisce un insieme di regole speciali per Symfony, Doctrine, PHPUnit e molti altri.
Reflection — Libreria Reflection per eseguire analisi statica per progetti PHP
Symfony Insight ©️ — Rileva rischi per la sicurezza, trova bug e fornisce metriche utilizzabili per progetti PHP.
Tuli — Un motore di analisi statica.
twig-lint — twig-lint è uno strumento di lint per i tuoi file twig.
WAP — Strumento per rilevare e correggere vulnerabilità di validazione dell'input in applicazioni web PHP (4.0 o superiore) e prevede i falsi positivi combinando analisi statica e data mining.
Dlint — Uno strumento per garantire che il codice Python sia sicuro.
Dodgy — Dodgy è uno strumento molto semplice da eseguire sulla tua codebase per cercare valori dall'aspetto "losco". È una serie di semplici espressioni regolari progettate per rilevare cose come check-in accidentali di diff SCM o password e chiavi segrete hardcoded nei file.
ENRE-py ⚠️ — ENRE (ENtity Relationship Extractor) è uno strumento per l'estrazione di dipendenze o relazioni di entità di codice dal codice sorgente. ENRE-py è un estrattore di relazioni tra entità per Python basato sui Python Language Services della Standard Library.
fixit — Un framework per creare regole di lint e relative auto-correzioni per il codice sorgente.
flake8 — Un wrapper attorno a pyflakes, pycodestyle e mccabe.
flakeheaven — flakeheaven è un linter Python costruito attorno a flake8 per consentire una configurazione toml ereditabile e complessa.
Griffe — Firme per interi programmi Python. Estrai la struttura, l'ossatura, lo scheletro del tuo progetto per generare documentazione API o trovare modifiche breaking nella tua API.
InspectorTiger ⚠️ — IT, Inspector Tiger, è un moderno strumento/framework di revisione del codice Python. Viene fornito con una serie di handler predefiniti che ti avvisano su miglioramenti e possibili bug. Oltre a questi handler, puoi scrivere i tuoi o usarne di realizzati dalla community.
jedi — Libreria di autocompletamento/analisi statica per Python.
linty fresh — Analizza gli errori di lint e li segnala su Github come commenti su una pull request.
mbake — mbake è un formattatore e linter per Makefile. Ci sono voluti solo 50 anni!
mccabe ⚠️ — Controlla la complessità di McCabe.
multilint ⚠️ — Un wrapper attorno a flake8, isort e modernize.
mypy — Un controllore statico dei tipi che mira a combinare i vantaggi del duck typing e della tipizzazione statica, spesso usato con MonkeyType.
pip-audit — Strumento per scansionare i pacchetti Python alla ricerca di vulnerabilità note. Sviluppato dalla Python Packaging Authority (PyPA) e supportato da Trail of Bits e Google. Scansiona gli ambienti Python e i file dei requisiti per identificare pacchetti vulnerabili e suggerisce rimedi. Supporta GitHub Actions, hook pre-commit e molteplici integrazioni con servizi di vulnerabilità.
prospector — Un wrapper attorno a pylint, pep8, mccabe e altri.- py-find-injection ⚠️ — Trova le vulnerabilità di SQL injection nel codice Python.
pyanalyze — Uno strumento per rilevare programmaticamente errori comuni nel codice Python, come riferimenti a variabili non definite ed errori di tipo. Può essere esteso per aggiungere regole aggiuntive ed eseguire controlli specifici per determinate funzioni.
pycodestyle — (In precedenza pep8) Controlla il codice Python rispetto ad alcune delle convenzioni di stile in PEP 8.
pydocstyle ⚠️ — Controlla la conformità alle convenzioni delle docstring di Python.
pyflakes — Controlla i file sorgente Python alla ricerca di errori.
pylint — Cerca errori di programmazione, aiuta a far rispettare uno standard di codifica e individua alcuni code smell. Include inoltre pyreverse (un generatore di diagrammi UML) e symilar (un controllore di similarità).
pylyzers ⚠️ — Un analizzatore statico di codice / language server per Python, scritto in Rust, concentrato sul controllo dei tipi e su un output leggibile.
Pyra — Pyra è un analizzatore statico linter di alto livello per applicazioni di data science scritte in Python, che aiuta gli sviluppatori a identificare potenziali problemi nel loro codice di data science scritto in Python, come estensione di Lyra.
pyre-check ⚠️ — Un type checker veloce e scalabile per grandi codebase Python. Pyre-check è stato sostituito da Pyrefly, la sua iterazione successiva.
pyrefly — Un type checker veloce e incrementale e un language server per Python, che fornisce funzionalità IDE come navigazione del codice, evidenziazione semantica e completamento del codice.
pyright — Type checker statico per Python, creato per colmare le lacune degli strumenti esistenti come mypy.
pyroma — Valuta quanto un progetto Python sia conforme alle migliori pratiche dell'ecosistema di packaging Python e segnala i problemi che potrebbero essere migliorati.
Pysa — Uno strumento basato su pyre-check di Facebook per identificare potenziali problemi di sicurezza nel codice Python individuati tramite l'analisi del taint.
PyT - Python Taint ⚠️ — Uno strumento di analisi statica per rilevare vulnerabilità di sicurezza nelle applicazioni web Python.
pytype — Un analizzatore statico dei tipi per codice Python.
pyupgrade — Uno strumento (e hook pre-commit) per aggiornare automaticamente la sintassi alle versioni più recenti del linguaggio.
QuantifiedCode ⚠️ — Revisione e riparazione automatica del codice. Aiuta a tenere traccia di problemi e metriche nei tuoi progetti software e può essere facilmente esteso per supportare nuovi tipi di analisi.
radon ⚠️ — Uno strumento Python che calcola varie metriche dal codice sorgente.
refurb — Uno strumento per rinnovare e modernizzare le codebase Python. Refurb è fortemente ispirato a clippy, il linter integrato per Rust.
ruff — Linter Python veloce, scritto in Rust. Da 10 a 100 volte più veloce dei linter esistenti. Compatibile con Python 3.10. Supporta il file watcher.
Safety — Scanner di vulnerabilità delle dipendenze Python progettato per migliorare la sicurezza della supply chain del software rilevando pacchetti con vulnerabilità note. Verifica le dipendenze Python rispetto a un database di vulnerabilità di sicurezza note e fornisce report dettagliati. Supporta l'integrazione CI/CD e più formati di output.
ty — Un type checker Python estremamente veloce scritto in Rust.
unimport — Un linter e formatter per trovare e rimuovere istruzioni di import non utilizzate.
vulture — Trova classi, funzioni e variabili non utilizzate nel codice Python.
wemake-python-styleguide — Il linter Python più severo e opinionato di sempre.
wily — Uno strumento da riga di comando per archiviare, esplorare e visualizzare graficamente la complessità del codice sorgente Python.
xenon ⚠️ — Monitora la complessità del codice usando radon.
yapf ⚠️ — Un formatter per file Python creato da Google YAPF segue una metodologia distintiva, originata dallo strumento 'clang-format' creato da Daniel Jasper. In sostanza, il programma riformatta il codice nella formattazione più adatta che rispetta la guida di stile, anche se il codice originale segue già la guida di stile. Questo concetto è simile allo strumento 'gofmt' del linguaggio Go, che mira a porre fine ai dibattiti sulla formattazione facendo passare l'intera codebase di un progetto attraverso YAPF ogni volta che vengono apportate modifiche, mantenendo così uno stile coerente in tutto il progetto ed eliminando la necessità di discutere sullo stile in ogni revisione del codice.
Fukuzatsu — Uno strumento per misurare la complessità del codice nei file di classe Ruby. La sua analisi genera punteggi basati su algoritmi di complessità ciclomatica senza "opinioni" aggiunte.
htmlbeautifier — Un normalizzatore/abbellitore per HTML che comprende anche Ruby incorporato. Ideale per sistemare i template Rails.
laser ⚠️ — Analisi statica e linter di stile per codice Ruby.
MetricFu ⚠️ — MetricFu è un insieme di strumenti per fornire report che mostrano quali parti del tuo codice potrebbero richiedere lavoro extra.
pelusa — Strumento di analisi statica di tipo Lint per migliorare il tuo codice Ruby a oggetti.
quality ⚠️ — Esegue controlli di qualità sul tuo codice usando strumenti della community e garantisce che i tuoi numeri non peggiorino nel tempo.
Querly ⚠️ — Strumento di controllo basato su pattern per Ruby.
Railroader ⚠️ — Uno scanner open source di vulnerabilità di sicurezza tramite analisi statica per applicazioni Ruby on Rails.
rails_best_practices — Uno strumento di metriche del codice per progetti Rails
reek — Rilevatore di code smell per Ruby.
Roodi — Roodi sta per Ruby Object Oriented Design Inferometer. Analizza il tuo codice Ruby e ti avvisa dei problemi di progettazione che hai, in base ai controlli configurati.
RuboCop — Un analizzatore statico del codice Ruby, basato sulla guida di stile Ruby della community.
Rubrowser — Generatore interattivo di grafi delle dipendenze delle classi Ruby.
ruby-lint ⚠️ — Analisi statica del codice per Ruby.
rubycritic — Un reporter della qualità del codice Ruby.
rufo — Un formatter Ruby opinionato, pensato per essere usato da riga di comando come plugin per editor di testo, per autoformattare i file al salvataggio o su richiesta.
Saikuro ⚠️ — Un analizzatore della complessità ciclomatica per Ruby.
SandiMeter ⚠️ — Strumento di analisi statica per verificare il codice Ruby rispetto alle regole di Sandi Metz.
Skunk — Un calcolatore di SkunkScore per codice Ruby -- Trova il codice più complicato senza copertura dei test!
Sorbet — Un type checker veloce e potente progettato per Ruby.
Standard Ruby — Guida di stile Ruby, con linter e correzione automatica del codice
Steep — Tipizzazione graduale per Ruby.
Traceroute ⚠️ — Una gemma con task Rake che ti aiuta a trovare le route e le azioni del controller non utilizzate per la tua app Rails 3+.
release-plzcargo-show-asm — Subcomando cargo che mostra l'assembly, l'LLVM-IR e il MIR generati per il codice Rust
cargo-spellcheck — Controlla tutta la tua documentazione per errori di ortografia e grammatica con hunspell (pronto) e languagetool (anteprima)
cargo-unused-features ⚠️ — Trova i feature flag abilitati potenzialmente non utilizzati e rimuovili. Puoi generare un semplice report HTML dal json per facilitare l'ispezione dei risultati. Rimuove una feature di una dipendenza e poi compila il progetto per vedere se compila ancora. Se compila, il feature flag può probabilmente essere rimosso, ma potrebbe essere un falso positivo.
clippy — Un linter di codice per individuare errori comuni e migliorare il tuo codice Rust.
diff.rs — Applicazione web (WASM) per visualizzare un diff tra versioni di crate Rust.
dylint — Uno strumento per eseguire lint Rust da librerie dinamiche. Dylint rende facile per gli sviluppatori mantenere le proprie raccolte di lint personali.
electrolysis ⚠️ — Uno strumento per verificare formalmente programmi Rust tramite la transpilazione in definizioni nel prover di teoremi Lean.
herbie ⚠️ — Aggiunge avvisi o errori alla tua crate quando usi un'espressione in virgola mobile numericamente instabile.
kani — Il Kani Rust Verifier è un model checker bit-precise per Rust. Kani è particolarmente utile per verificare i blocchi di codice unsafe in Rust, dove i "superpoteri unsafe" non sono controllati dal compilatore. Kani verifica:
TangleGuard ©️ — Aiuta a comprendere e mantenere un'architettura software scalabile. Per farlo, genera un grafo interattivo e annidato delle dipendenze a partire dal codice sorgente. Puoi scegliere il livello di dettaglio e ottenere la porzione della tua codebase che conta per te.
warnalyzer ⚠️ — Mostra il codice non utilizzato da progetti Rust multi-crate
Better Code Hub ©️ — Better Code Hub verifica la tua codebase GitHub rispetto a 10 linee guida ingegneristiche elaborate dall'autorità nella qualità del software, Software Improvement Group.
Betterscan CE ⚠️ — Controlla codice e infrastruttura (supporta vari repository Git, stack cloud, CLI, piattaforma Web, integrazioni disponibili) per problemi di sicurezza e qualità. Code Scanning/SAST/Linting che utilizza molti strumenti/scanner deduplicati con un unico report (AI opzionale).
biome — Una toolchain per progetti web, pensata per fornire funzionalità di manutenzione. Biome formatta e fa il lint del codice in una frazione di secondo. È il successore di Rome. È progettato per sostituire eventualmente Biome è progettato per sostituire eventualmente Babel, ESLint, webpack, Prettier, Jest e altri.
BlockWatch — Un linter indipendente dal linguaggio che mantiene sincronizzati codice, documentazione e configurazione e applica regole rigorose di formattazione e validazione.
BugProve ⚠️ ©️ — BugProve è una piattaforma di analisi del firmware che combina tecniche di analisi statica e dinamica per scoprire corruzioni di memoria, injection di comandi e altre classi o debolezze comuni nel codice binario. Rileva anche dipendenze vulnerabili, parametri crittografici deboli, configurazioni errate e altro.
callGraph — Genera staticamente un'immagine del call graph e la visualizza sullo schermo.
CAST Highlight ©️ — Analisi statica del codice commerciale che viene eseguita localmente, ma carica i risultati sul proprio cloud per la presentazione.
Checkmarx CxSAST ©️ — Analisi statica del codice commerciale che non richiede pre-compilazione.
ClassGraph — Uno scanner per classpath e module path per interrogare o visualizzare i metadati delle classi o le correlazioni tra classi.
Clayton ©️ — Code review basate su IA per Salesforce. Proteggi i tuoi sviluppi, applica le best practice e controlla il tuo debito tecnico in tempo reale.
coala ⚠️ — Framework indipendente dal linguaggio per creare analisi del codice: supporta oltre 60 linguaggi per impostazione predefinita.
Cobra ©️ — Analizzatore strutturale del codice sorgente del Jet Propulsion Laboratory della NASA.
Codacy ©️ — Analisi del codice per rilasciare codice migliore, più velocemente.
Code Intelligence ©️ — Piattaforma DevSecOps indipendente da CI/CD che combina motori di fuzzing leader del settore per trovare bug e visualizzare la copertura del codice
Code Pathfinder — Analisi statica del codice open source per team di sicurezza con analisi del flusso di dati (taint analysis) tra file. Progettata per trovare vulnerabilità, ricerca strutturale avanzata, ricavare insight e supporta il server MCP.
Code-Graph-RAG — Costruisce grafi di conoscenza da codebase multi-linguaggio utilizzando il parsing AST di Tree-sitter e li memorizza in Memgraph. Supporta 11 linguaggi di programmazione con uno schema grafico unificato e consente interrogazioni in linguaggio naturale e la modifica di struttura del codice e relazioni. Funziona come server MCP per l'integrazione con assistenti IA.
Codeac ©️ — Strumento di code review automatizzata che si integra con GitHub, Bitbucket e GitLab (anche self-hosted). Disponibile per JavaScript, TypeScript, Python, Ruby, Go, PHP, Java, Docker e altro. (open source gratuito)
codeburner — Fornisce un'interfaccia unificata per ordinare e intervenire sui problemi che trova.
codechecker — Un database dei difetti e un'estensione viewer per il Clang Static Analyzer con GUI web.
CodeFactor ©️ — Analisi automatica del codice per repository su GitHub o BitBucket.
CodeFlow ©️ — Strumento di analisi automatica del codice per gestire il debito tecnico. Si integra con Bitbucket e GitLab. (gratuito per progetti open source)
Codemodder — Codemodder è un framework pluggable per creare codemod espressivi. Usa Codemodder quando ti serve qualcosa di più di un linter o di uno strumento di formattazione del codice. Usalo per correggere problemi di sicurezza non banali e altri problemi di qualità del codice.
codeql — Analisi approfondita del codice: query semantiche e dataflow per diversi linguaggi con supporto plugin VSCode.
CodeQue — Ecosistema per il matching strutturale di codice JavaScript e TypeScript. Offre uno strumento di ricerca che comprende la struttura del codice. Disponibile come strumento CLI ed estensione per Visual Studio Code. Aiuta a cercare codice più velocemente e con maggiore precisione, rendendo il tuo flusso di lavoro più efficace. Presto offrirà un plugin ESLint per creare le tue regole in pochi minuti per garantire la qualità della codebase.
CodeRush ©️ — Strumenti di creazione del codice, debug, navigazione, refactoring, analisi e visualizzazione che utilizzano il motore Roslyn in Visual Studio 2015 e versioni successive.
CodeScan ©️ — Qualità e sicurezza del codice per sviluppatori Salesforce. Realizzate esclusivamente per la piattaforma Salesforce, le soluzioni di analisi del codice di CodeScan ti offrono una visibilità totale sulla salute del tuo codice.
CodeScene ©️ — CodeScene è uno strumento di visualizzazione della qualità per il software. Dai priorità al debito tecnico, rileva i rischi di consegna e misura gli aspetti organizzativi. Completamente automatizzato.
CodeSee ©️ — CodeSee mappa e automatizza i servizi, le directory, le dipendenze tra file e le modifiche al codice della tua app. È come Google Maps, ma per il codice.t
CodeSonar from GrammaTech ©️ — Analisi statica avanzata, a livello di intero programma e di percorso profondo, di C, C++, Java e C# con spiegazioni facili da comprendere e visualizzazione di codice e percorsi.
Codety ⚠️ ©️ — Codety Scanner è uno scanner completo del codice sorgente che incorpora oltre 5000 regole di analisi statica del codice, progettate per rilevare problemi nel codice per oltre 20 linguaggi di programmazione e strumenti IaC.
Codiga ©️ — Piattaforma di code review automatizzate e gestione del debito tecnico che supporta oltre 12 linguaggi.
Corgea ©️ — Corgea è uno scanner SAST basato su IA che aiuta gli sviluppatori a trovare e correggere codice non sicuro. Trova difetti nella logica di business, autenticazioni non sicure, vulnerabilità API e altro con pochi falsi positivi. Inoltre, scrive automaticamente le correzioni di sicurezza da approvare. Corgea si integra con GitHub, GitLab, Azure DevOps, IDE e CLI. È gratuito da provare.
Corrode ⚠️ — Traduzione semi-automatica da C a Rust. Può rivelare bug nell'implementazione originale mostrando gli avvisi e gli errori del compilatore Rust. Sostituito da C2Rust.
Coverity ©️ — Synopsys Coverity supporta 20 linguaggi e oltre 70 framework, inclusi Ruby on Rails, Scala, PHP, Python, JavaScript, TypeScript, Java, Fortran, C, C++, C#, VB.NET.
cpp-linter-action — Una GitHub Action per il linting di codice C/C++ che integra clang-tidy e clang-format per raccogliere feedback forniti sotto forma di commenti e/o annotazioni nei thread.
cqc ⚠️ — Controlla la qualità del tuo codice per file js, jsx, vue, css, less, scss, sass e styl.
DeepCode ⚠️ ©️ — DeepCode è stata acquisita da Snyk ed è ora Snyk Code.
DeepSource ©️ — Analisi statica approfondita per trovare problemi in ambiti come rischi di bug, sicurezza, anti-pattern, prestazioni, documentazione e stile. Integrazioni native con GitHub, GitLab e Bitbucket. Meno del 5% di falsi positivi.
deleaker ©️ — Deleaker è uno strumento di rilevamento delle perdite di memoria per C++, .NET e Delphi, che si integra con Visual Studio, Qt Creator e RAD Studio o funziona come applicazione standalone. Aiuta gli sviluppatori a trovare e correggere in modo efficiente le perdite di memoria, GDI e handle.
Depends — Analizza le dipendenze complete degli elementi del codice per Java, C/C++, Ruby.
DerScanner ©️ — Piattaforma Static Application Security Testing (SAST) multi-linguaggio che rileva vulnerabilità critiche, inclusi segreti hardcoded, crittografia debole, backdoor, SQL injection, configurazioni non sicure, ecc.
DevSkim — Strumento di analisi statica basato su regex per Visual Studio, VS Code e Sublime Text - C/C++, C#, PHP, ASP, Python, Ruby, Java e altri.
diesel-guard — Linter per pattern di migrazione Postgres pericolosi in Diesel e SQLx. Previene i tempi di inattività causati da modifiche non sicure allo schema.
dotnet-format — Un formatter di codice per .NET. Le preferenze verranno lette da un file .editorconfig, se presente, altrimenti verrà utilizzato un set predefinito di preferenze. Al momento dotnet-format è in grado di formattare progetti C# e Visual Basic con un sottoinsieme delle opzioni .editorconfig supportate.
Embold ©️ — Piattaforma intelligente di analisi del software che identifica problemi di progettazione, problemi del codice, duplicazioni e metriche. Supporta Java, C, C++, C#, JavaScript, TypeScript, Python, Go, Kotlin e altro.
emerge ⚠️ — Emerge è un visualizzatore di codice sorgente e dipendenze che può essere utilizzato per raccogliere informazioni sulla struttura del codice sorgente, sulle metriche, sulle dipendenze e sulla complessità dei progetti software. Dopo aver scansionato il codice sorgente di un progetto, fornisce un'interfaccia web interattiva per esplorare e analizzare il progetto utilizzando strutture a grafo.
Enforster AI ©️ — Enforster AI esegue SAST contestuale per la sicurezza del codice, sfruttando LLM e intelligenza artificiale per ridurre e arricchire il rilevamento di difetti logici, segreti, fughe di dati, vulnerabilità della supply chain e tecniche.
ESLint — Un linter estensibile per JS, che segue lo standard ECMAScript.
ezno — Un compilatore JavaScript e type checker TypeScript scritto in Rust con un focus sull'analisi statica e sulle prestazioni a runtime. Il type checker di Ezno è costruito da zero. Il checker è completamente compatibile con le annotazioni di tipo TypeScript e può funzionare senza alcuna annotazione di tipo.
Find Security Bugs — Il plugin SpotBugs per audit di sicurezza di applicazioni web Java e applicazioni Android. (Funziona anche con progetti Kotlin, Groovy e Scala)- Fortify ©️ — Una piattaforma commerciale di analisi statica che supporta la scansione di 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 e XML.
Freeplane Code Explorer — La modalità Code Explorer in Freeplane è progettata per analizzare la struttura e le dipendenze del codice compilato in file di classe JVM. Consente inoltre di visualizzare i risultati dei test ArchUnit direttamente in Freeplane, se Freeplane è in esecuzione e ArchUnit rileva violazioni delle regole durante i test.
Goodcheck — Linter personalizzabile basato su Regexp.
goone ⚠️ — Trova query N+1 (chiamate SQL in un ciclo for) nel codice Go.
graudit — Grep rough audit - strumento di audit del codice sorgente.
HCL AppScan Source ©️ — Analisi statica del codice commerciale.
Hopper ⚠️ — Uno strumento di analisi statica scritto in Scala per linguaggi che girano su JVM.
Hound CI — Commenta le violazioni di stile nelle pull request di GitHub. Supporta Coffeescript, Go, HAML, JavaScript, Ruby, SCSS e Swift.
imhotep ⚠️ — Commenta i commit che arrivano nel tuo repository e verifica errori sintattici e avvisi generali di lint.
include-gardener ⚠️ — Un analizzatore statico multi-linguaggio per C/C++/Obj-C/Python/Ruby per creare un grafo (in formato dot o graphml) che mostra tutte le relazioni #include di un dato insieme di file.
Infer — Un analizzatore statico per Java, C e Objective-C
Joern — Joern è una piattaforma per analizzare codice sorgente, bytecode ed eseguibili binari. Genera code property graph (CPG), una rappresentazione grafica del codice per l'analisi del codice tra linguaggi. I code property graph sono archiviati in un database grafico personalizzato. Ciò consente di estrarre informazioni dal codice utilizzando query di ricerca formulate in un linguaggio di query specifico del dominio basato su Scala. Joern è sviluppato con l'obiettivo di fornire uno strumento utile per la scoperta di vulnerabilità e la ricerca nell'analisi statica dei programmi.
jQAssistant — jQAssistant è una piattaforma di analisi software basata su plugin che consente di scansionare strutture di codice e metadati dai repository in un database grafico Neo4j. I dati raccolti possono essere utilizzati per esplorazioni ad-hoc tramite query, visualizzazione o definizione di regole per la validazione continua dell'architettura.
keploy — Keploy è una piattaforma di testing open-source che aiuta gli sviluppatori ad automatizzare e ottimizzare il loro processo di test. Fornisce agenti di test API e di integrazione, generando test, mock/stub per API che funzionano realmente. Inoltre, Keploy offre un agente di Unit Testing basato su IA che genera test unitari stabili e utili direttamente nelle tue PR GitHub e in VSCode, aiutando a individuare errori e migliorare la qualità del codice.
Kiuwan ©️ — Identifica e correggi le minacce informatiche in un ambiente collaborativo estremamente rapido, con un'integrazione perfetta nel tuo SDLC. Python, C\C++, Java, C#, PHP e altro.
Klocwork ©️ — Analisi statica di qualità e sicurezza per C/C++, Java e C#.
LangLint — Piattaforma di traduzione automatica per commenti nel codice e docstring in più di 20 tipi di file. Elimina le barriere linguistiche nella collaborazione software internazionale. Supporta oltre 100 coppie di lingue con protezione della sintassi. Si integra nei pipeline CI/CD come Ruff. Da 10 a 20 volte più veloce con elaborazione concorrente.
LGTM ©️ — Trova vulnerabilità di sicurezza, varianti e problemi critici di qualità del codice utilizzando query CodeQL sul codice sorgente. Revisione automatica del codice nelle PR; gratuito per l'open source. In precedenza noto come Semmle. Supporta repository Git pubblici ospitati su Bitbucket Cloud, GitHub.com, GitLab.com.
lizard — Lizard è un analizzatore estensibile della complessità ciclomatica per molti linguaggi di programmazione inclusi C/C++ (non richiede tutti i file header o gli import Java). Esegue anche il rilevamento di copia-incolla (rilevamento di cloni del codice/rilevamento di duplicati del codice) e molte altre forme di analisi statica del codice. Conta le righe di codice senza commenti, CCN (numero di complessità ciclomatica), il numero di token delle funzioni e il numero di parametri delle funzioni.
Mega-Linter — Mega-Linter può gestire qualsiasi tipo di progetto grazie ai suoi 70+ Linter integrati, i suoi report avanzati, eseguibile su qualsiasi sistema CI o localmente, con installazione e configurazione assistita, in grado di applicare formattazione e correzioni
Mobb ©️ — Mobb è un correttore di vulnerabilità automatico e affidabile che protegge le applicazioni, riduce i backlog di sicurezza, e libera gli sviluppatori per concentrarsi sull'innovazione. Mobb è gratuito per i progetti open-source.
MOPSA — Un analizzatore statico progettato per riutilizzare facilmente domini astratti tra linguaggi molto diversi (come C e Python).
Neurolint-CLI — Strumento di trasformazione del codice deterministico che utilizza il parsing AST e trasformazioni basate su regole. Corregge automaticamente oltre 50 problemi, incluse violazioni di accessibilità, errori di hydration, migrazioni React 19/Next.js 16 e aggiornamenti di configurazione. Dispone di un'orchestrazione fail-safe in 5 fasi per garantire zero modifiche che rompono il codice. Specializzato per progetti React, Next.js e TypeScript.
oclint — Uno strumento di analisi statica del codice sorgente per migliorare la qualità e ridurre i difetti per C, C++ e Objective-C.
Offensive 360 ©️ — Sistema commerciale di analisi statica del codice: non richiede la compilazione del codice sorgente né la pre-compilazione.
OpenRewrite — OpenRewrite corregge i comuni problemi di analisi statica segnalati tramite Sonar e altri strumenti usando un plugin Maven e Gradle o la CLI Moderne.
OpenStaticAnalyzer — OpenStaticAnalyzer è uno strumento di analisi del codice sorgente in grado di eseguire un'analisi statica approfondita del codice sorgente di sistemi complessi.
oxc — Oxidation Compiler sta creando una suite di strumenti ad alte prestazioni per il linguaggio JavaScript / TypeScript riscritto in Rust.
parasoft ©️ — Soluzioni automatizzate di test del software per test unitari, API e web UI. Conforme a MISRA, OWASP e altri.
pfff — Gli strumenti di Facebook per l'analisi del codice, la visualizzazione o la trasformazione del codice sorgente che preserva lo stile per molti linguaggi.
Pixee ©️ — Pixeebot trova problemi di sicurezza e qualità del codice nel tuo codice e crea pull request pronte per il merge con correzioni consigliate.
PMD — Un analizzatore di codice sorgente per Java, Salesforce Apex, Javascript, PLSQL, XML, XSL e altri.
pre-commit — Un framework per gestire e mantenere hook pre-commit multi-linguaggio.
Precaution — Precaution è uno strumento di sicurezza per l'analisi statica (SAST) progettato per trovare potenziali vulnerabilità critiche nel codice sorgente prima della produzione. È disponibile come CLI, GitHub Action e GitHub App.
Prettier — Un formattatore di codice opinionato.
Pronto — Revisione rapida e automatica del codice delle tue modifiche. Supporta più di 40 runner per vari linguaggi, inclusi Clang, Elixir, JavaScript, PHP, Ruby e altri.
PT.PM ⚠️ — Un motore per la ricerca di pattern nel codice sorgente, basato su Unified AST o UST. Attualmente sono supportati C#, Java, PHP, PL/SQL, T-SQL e JavaScript. I pattern possono essere descritti all'interno del codice o usando un DSL.
Putout — Trasformatore di codice configurabile e basato su plugin con supporto integrato per plugin eslint e babel per js, jsx typescript, flow, markdown, yaml e json.
PVS-Studio ©️ — Un'analisi statica del codice C, C++, C# e Java (gratuita in modo condizionato per FOSS e sviluppatori individuali). A scopo pubblicitario puoi proporre un grande progetto FOSS per l'analisi da parte dei dipendenti PVS. Supporta la mappatura CWE, gli standard di codifica OWASP ASVS, MISRA, AUTOSAR e SEI CERT.
pylama — Strumento di audit del codice per Python e JavaScript. Include pycodestyle, pydocstyle, PyFlakes, Mccabe, Pylint e altro
Qwiet AI ©️ — Identifica le vulnerabilità uniche del tuo codebase prima che raggiungano la produzione. Sfrutta il Code Property Graph (CPG) per eseguire le sue analisi in concomitanza in un unico grafo di grafi. Trova automaticamente difetti di logica di business in sviluppo come segreti hardcoded e logic bomb
Refactoring Essentials — L'estensione gratuita di Visual Studio 2015 per refactoring in C# e VB.NET, inclusi gli analizzatori di best practice del codice.
relint — Un linter statico per file che consente di scrivere regole personalizzate usando espressioni regolari (RegEx).
ReSharper ©️ — Estende Visual Studio con ispezioni del codice in tempo reale per C#, VB.NET, ASP.NET, JavaScript, TypeScript e altre tecnologie.
Rev-dep — Toolkit per l'analisi e l'ottimizzazione delle dipendenze per progetti JavaScript e TypeScript moderni. Traccia gli import, identifica le dipendenze circolari, trova codice inutilizzato, pulisci i moduli node.
RIPS ©️ — Un analizzatore statico del codice sorgente per vulnerabilità negli script PHP.
Roslyn Analyzers — Implementazione basata su Roslyn degli analizzatori FxCop.
Roslyn Security Guard — Progetto focalizzato sull'identificazione di potenziali vulnerabilità come SQL injection, cross-site scripting (XSS), CSRF, debolezze crittografiche, password hardcoded e molti altri.
SafeQL — Valida e genera automaticamente tipi TypeScript da query SQL grezze in PostgreSQL. SafeQL è un plugin ESLint per scrivere query SQL in modo type-safe.
SAST Online ©️ — Controlla a fondo il codice sorgente Android per scoprire e affrontare potenziali problemi e vulnerabilità di sicurezza. Strumento online di Static Application Security Testing (analisi statica del codice)
Scrutinizer ⚠️ ©️ — Un controllo qualità del codice proprietario che può essere integrato con GitHub.
Security Code Scan — Analizzatore di sicurezza del codice per C# e VB.NET. Rileva vari pattern di vulnerabilità di sicurezza: SQLi, XSS, CSRF, XXE, Open Redirect, ecc. Si integra in Visual Studio 2015 e versioni successive. Rileva vari pattern di vulnerabilità di sicurezza: SQLi, XSS, CSRF, XXE, Open Redirect, ecc.
Semgrep — Uno strumento di analisi statica veloce e open-source per trovare bug e applicare standard di codice in fase di editor, commit e CI. Le sue regole assomigliano al codice che già scrivi; niente alberi di sintassi astratti o lotte con le regex. Supporta oltre 17 linguaggi.
Semgrep Supply Chain ©️ — Trova e correggi rapidamente problemi di sicurezza ad alta priorità. Semgrep Supply Chain dà priorità al 2% delle vulnerabilità raggiungibili dal tuo codice.
Seqra — Analizzatore statico orientato alla sicurezza per applicazioni web Java e Kotlin. Analizza il bytecode con regole YAML in stile Semgrep e dataflow di livello CodeQL (con supporto Spring di prima classe) per trovare vulnerabilità che gli scanner basati solo sul codice sorgente non rilevano.
ShiftLeft Scan ⚠️ — Scan è una piattaforma DevSecOps gratuita e open-source per rilevare problemi di sicurezza nel codice sorgente e nelle dipendenze. Supporta un'ampia gamma di linguaggi e pipeline CI/CD. Nota: ShiftLeft è stato rinominato Qwiet AI nel 2023, successivamente acquisito da Harness a settembre 2025. Questo progetto open-source non è più mantenuto.
shipshape ⚠️ — Piattaforma di analisi statica dei programmi che consente l'integrazione di analizzatori personalizzati tramite un'interfaccia comune.
Sigrid ©️ — Sigrid ti aiuta a migliorare il tuo software misurando la qualità del codice del tuo sistema, e poi confronta i risultati con un benchmark di migliaia di sistemi di settore per darti consigli concreti sulle aree in cui puoi migliorare.
Similarity Tester — Uno strumento che trova somiglianze tra file o all'interno di essi per aiutarti a individuare violazioni del principio DRY.
Skylos — Rilevamento di codice morto, scansione di sicurezza, rilevamento di segreti e analisi della qualità del codice per Python, TypeScript e Go. Analisi consapevole dei framework con recall del 98%. Include GitHub Action per CI/CD, estensione VS Code e server MCP per l'integrazione con agenti IA.
Snyk Code ©️ — Snyk Code trova vulnerabilità di sicurezza basate sull'IA. La sua velocità di analisi ci consente di analizzare il tuo codice in tempo reale e fornire risultati quando premi il pulsante di salvataggio nel tuo IDE. I linguaggi supportati sono Java, JavaScript, Python, PHP, C#, Go e TypeScript. Integrazioni con GitHub, BitBucket e GitLab. È gratuito da provare e fa parte della piattaforma Snyk che copre anche SCA, container e IaC.
SonarQube Cloud ©️ — SonarQube Cloud consente al tuo team di fornire codice pulito in modo costante ed efficiente con uno strumento di code review che si integra facilmente nelle piattaforme DevOps cloud ed estende il tuo workflow CI/CD. SonarQube Cloud offre un piano gratuito.
SonarQube for IDE — SonarQube for IDE (precedentemente SonarLint) è un'estensione IDE gratuita disponibile per IntelliJ, VS Code, Visual Studio ed Eclipse, per trovare e correggere problemi di codice in tempo reale, segnalando i problemi mentre scrivi codice, proprio come un correttore ortografico. Più che un linter, fornisce anche una guida contestuale ricca per aiutare gli sviluppatori a capire perché c'è un problema, valutarne il rischio e imparare a risolverlo.
SonarQube Server — SonarQube fornisce ai team di sviluppo una soluzione di qualità del codice e sicurezza che si integra profondamente nell'ambiente aziendale; consentendoti di distribuire codice pulito in modo costante e affidabile. SonarQube offre una Community Build gratuita e open source.
Sonatype ©️ — Segnala vulnerabilità note nelle dipendenze comuni e raccomanda pacchetti aggiornati per ridurre al minimo le modifiche che rompono il codice
Soto Platform ©️ — Suite di strumenti di analisi statica composta dai tre componenti Sotoarc (Architecture Analysis), Sotograph (Quality Analysis) e Sotoreport (Quality report). Aiuta a trovare differenze tra architettura e implementazione, violazioni delle interfacce (ad es. accesso esterno a parti private dei sottosistemi, rilevamento di tutte le classi, file, package e sottosistemi fortemente accoppiati da relazioni cicliche e altro ancora. La famiglia di prodotti Sotograph è eseguibile su Windows e Linux.
SourceMeter ©️ — Analisi statica del codice per C/C++, Java, C#, Python e versioni RPG III e RPG IV (incluse quelle free-form).
sqlvet — Esegue analisi statica su query SQL grezze nel tuo codebase Go per far emergere potenziali errori a runtime. Controlla gli errori di sintassi SQL, identifica query non sicure che potrebbero portare a SQL injection, si assicura che il numero di colonne corrisponda al numero di valori nelle istruzioni INSERT e valida i nomi di tabelle e colonne.
StaticReviewer ©️ — Static Reviewer esegue controlli del codice secondo i più rilevanti Standard di Codifica Sicura, OWASP, CWE, CVE, CVSS, MISRA, CERT, per oltre 40 linguaggi di programmazione, utilizzando oltre 1000 regole di validazione integrate per Sicurezza, Deadcode e Best Practice. Disponibile un modulo per la Software Composition Analysis (SCA) per trovare vulnerabilità in librerie open source e di terze parti.
Super-Linter ⚠️ — Combinazione di più linter da installare come GitHub Action.
Svace ©️ — Strumento di analisi statica del codice per Java, C, C++, C#, Go.
Synopsys ©️ — Una piattaforma commerciale di analisi statica che consente la scansione di più linguaggi (C/C++, Android, C#, Java, JS, PHP, Python, Node.JS, Ruby, Fortran e Swift).
Teamscale ©️ — Strumento di analisi statica e dinamica che supporta più di 25 linguaggi e l'integrazione diretta con l'IDE. Hosting gratuito per progetti Open Source disponibile su richiesta. Licenze accademiche gratuite disponibili.
TencentCodeAnalysis ⚠️ — Tencent Cloud Code Analysis (TCA in breve, nome in codice CodeDog all'interno dell'azienda all'inizio) è una piattaforma completa per l'analisi del codice e il tracciamento dei problemi. TCA è composto da tre componenti: server, web e client. Integra una serie di strumenti sviluppati internamente e supporta anche l'integrazione dinamica di strumenti di analisi del codice in vari linguaggi di programmazione.
ThreatMapper — Scanner di vulnerabilità e valutazione del rischio per container, serverless e host a runtime. ThreatMapper genera BOM runtime da dipendenze e pacchetti del sistema operativo, li confronta con più feed di minacce, scansiona la presenza di segreti non protetti e valuta i problemi in base a gravità e rischio di sfruttamento.
todocheck — Linter per integrare TODO annotati con i tuoi issue tracker
trivy — Uno scanner di vulnerabilità semplice e completo per container e altri artefatti, adatto alla CI. Trivy rileva vulnerabilità nei pacchetti del sistema operativo (Alpine, RHEL, CentOS, ecc.) e nelle dipendenze delle applicazioni (Bundler, Composer, npm, yarn, ecc.). Controlla container e filesystem.
trunk ©️ — I repository moderni includono molte tecnologie, ciascuna con il proprio set di linter. Con 30+ linter e in continua crescita, Trunk rende estremamente semplice identificare, installare, configurare ed eseguire i giusti linter, analizzatori statici e formatter per tutti i tuoi repo.
TscanCode — Una soluzione di analisi statica rapida e accurata per codici C/C++, C#, Lua fornita da Tencent. Utilizza licenza GPLv3.
Undebt — Strumento indipendente dal linguaggio per refactoring massicci, automatici e programmabili basati su semplici definizioni di pattern.