Курируемый каталог инструментов статического анализа (SAST) и линтеров для языков программирования, конфигураций, сборочных инструментов и CI, направленных на повышение качества кода.
В этом репозитории перечислены инструменты статического анализа для всех языков программирования, инструментов сборки, конфигурационных файлов и многого другого. Основное внимание уделяется инструментам, которые улучшают качество кода, таким как линтеры и форматтеры. Официальный сайт analysis-tools.dev основан на этом репозитории и добавляет рейтинги, комментарии пользователей и дополнительные ресурсы, такие как видео для каждого инструмента.
Этот проект был бы невозможен без щедрой поддержки наших спонсоров.
|
|
|
|
Если вы также хотите поддержать этот проект, перейдите на нашу страницу GitHub Sponsors.
Также ознакомьтесь с родственным проектом awesome-dynamic-analysis.
abaplint — Линтер для ABAP, написанный на TypeScript.
abapOpenChecks — Расширяет SAP Code Inspector новыми настраиваемыми проверками.
Polyspace for Ada ©️ — Обеспечивает верификацию кода, доказывающую отсутствие переполнения, деления на ноль, выхода за границы массива и некоторых других ошибок времени выполнения в исходном коде.
SPARK ©️ — Набор инструментов статического анализа и формальной верификации для Ada.
Astrée ©️ — Astrée автоматически доказывает отсутствие ошибок времени выполнения и некорректного параллельного поведения в приложениях на C/C++. Он корректен для вычислений с плавающей точкой, очень быстр и исключительно точен. Анализатор также проверяет правила кодирования MISRA/CERT/CWE/Adaptive Autosar и поддерживает квалификацию для ISO 26262, DO-178C уровня A и других стандартов безопасности. Доступны плагины для Jenkins и Eclipse.
CBMC — Model checker с ограниченной глубиной для программ на C, пользовательских утверждений, стандартных утверждений, анализа нескольких метрик покрытия.
clang-tidy — Инструмент линтинга C++ на основе Clang с (ограниченной) возможностью исправления проблем.
clazy — Ориентированный на Qt статический анализатор кода на основе фреймворка Clang. clazy — это плагин компилятора, который позволяет clang понимать семантику Qt. Вы получаете более 50 предупреждений компилятора, связанных с Qt, от ненужных выделений памяти до неправильного использования API, включая fix-its для автоматического рефакторинга.
CMetrics ⚠️ — Измеряет размер и сложность файлов C.
codechecker — База данных дефектов и расширение для просмотра Clang Static Analyzer с веб-GUI.
CPAchecker — Инструмент для настраиваемой верификации программ на C. Название CPAchecker было выбрано, чтобы отразить, что инструмент основан на концепциях CPA и используется для проверки программ.
cppcheck — Статический анализ кода C/C++.
CppDepend ©️ — Измеряйте, запрашивайте и визуализируйте свой код и избегайте неожиданных проблем, технического долга и сложности.
cpplint — Автоматический чекер C++, следующий руководству по стилю Google.
cqmetrics ⚠️ — Метрики качества для кода C.
CScout — Метрики сложности и качества для кода C и препроцессора C.
ENRE-cpp ⚠️ — ENRE (ENtity Relationship Extractor) — инструмент для извлечения зависимостей или связей сущностей кода из исходного кода. ENRE-cpp — это ENtity Relationship Extractor для C/C++ на основе @eclipse/CDT. (В разработке)
ESBMC — ESBMC — это открытый, свободно лицензируемый, контекстно-ограниченный model checker на основе теорий разрешимости по модулю для верификации однопоточных и многопоточных программ на C/C++.
flawfinder — Находит возможные уязвимости безопасности.
flint++ ⚠️ — Кроссплатформенный порт flint без зависимостей, программы линтинга для C++, разработанной и используемой в Facebook.
Frama-C — Корректный и расширяемый статический анализатор для кода C.
GCC — Компилятор GCC обладает возможностями статического анализа начиная с версии 10. Эта опция доступна только если GCC был сконфигурирован с включённой поддержкой анализатора. Он также может выводить свою диагностику в файл JSON в формате SARIF (начиная с v13).
Goblint — Статический анализатор для анализа многопоточных программ на C. Его основное внимание уделяется обнаружению гонок данных, но он также сообщает о других ошибках времени выполнения, таких как переполнение буфера и разыменование нулевого указателя.
Helix QAC ©️ — Статический анализ корпоративного уровня для встраиваемого программного обеспечения. Поддерживает стандарты кодирования MISRA, CERT и AUTOSAR.
IKOS ⚠️ — Корректный статический анализатор для кода C/C++ на основе LLVM.
KLEE — Движок динамического символьного исполнения, построенный поверх инфраструктуры компилятора LLVM. Он может автоматически генерировать тестовые случаи для программ таким образом, чтобы тестовые случаи охватывали как можно большую часть программы.
LDRA ©️ — Набор инструментов, включающий статический анализ (TBVISION) для различных стандартов, включая MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ и пользовательские правила.
MATE ⚠️ — Набор инструментов для интерактивного анализа программ с фокусом на поиск ошибок в коде C и C++. MATE объединяет анализ уязвимостей, специфичных для приложения, и низкоуровневый анализ с использованием графов свойств кода (CPG), что позволяет обнаруживать узкоспециализированные уязвимости, зависящие как от деталей реализации, так и от высокоуровневой семантики целевых программ на C/C++.
PC-lint ©️ — Статический анализ для C/C++. Работает нативно под Windows/Linux/MacOS. Анализирует код практически для любой платформы, поддерживая C11/C18 и C++17.
Phasar — Фреймворк статического анализа на основе LLVM, который включает анализ taint и type state.
Polyspace Bug Finder ©️ — Выявляет ошибки времени выполнения, проблемы параллелизма, уязвимости безопасности и другие дефекты во встраиваемом программном обеспечении на C и C++.
Polyspace Code Prover ©️ — Обеспечивает верификацию кода, доказывающую отсутствие переполнения, деления на ноль, выхода за границы массива и некоторых других ошибок времени выполнения в исходном коде C и C++.
scan-build — Фронтенд для запуска Clang Static Analyzer, встроенного в Clang, через обычную сборку.
splint — Статический чекер программ с поддержкой аннотаций.
SVF — Статический инструмент, обеспечивающий масштабируемый и точный межпроцедурный анализ зависимостей для программ на C и C++.
TrustInSoft Analyzer ©️ — Исчерпывающее обнаружение ошибок кодирования и связанных с ними уязвимостей безопасности. Это охватывает корректное обнаружение неопределённого поведения (переполнение буфера, выход за границы массива, разыменование нулевого указателя, use-after-free, деление на ноль, обращения к неинициализированной памяти, знаковое переполнение, некорректная арифметика указателей и т. д.), верификацию потоков данных и управления, а также полную функциональную верификацию формальных спецификаций. Поддерживаются все версии C вплоть до C18 и C++ вплоть до C++20. TrustInSoft Analyzer получит квалификацию ISO 26262 во втором квартале 2023 года (TCL3). Также в комплект входит чекер MISRA C.
vera++ ⚠️ — Vera++ — это программируемый инструмент для верификации, анализа и преобразования исходного кода C++.
weggli ⚠️ — Быстрый и надёжный инструмент семантического поиска для кодовых баз на C и C++. Он предназначен для помощи исследователям безопасности в выявлении интересной функциональности в больших кодовых базах.
.NET Analyzers — Организация для разработки анализаторов (диагностик и исправлений кода) с использованием .NET Compiler Platform.
ArchUnitNET — Библиотека тестирования архитектуры на C# для задания и проверки архитектурных правил на C# для автоматизированного тестирования.
code-cracker ⚠️ — Библиотека анализаторов для C# и VB, использующая Roslyn для создания рефакторингов, анализа кода и других приятных мелочей.
CSharpEssentials ⚠️ — C# Essentials — это коллекция диагностических анализаторов Roslyn, исправлений кода и рефакторингов, которые упрощают работу с языковыми возможностями C# 6.
Designite ©️ — Designite поддерживает обнаружение различных архитектурных, проектных и реализационных «запахов», вычисление различных метрик качества кода и анализ трендов.
Gendarme ⚠️ — Gendarme проверяет программы и библиотеки, содержащие код в формате ECMA CIL (Mono и .NET).
Infer# ⚠️ — InferSharp (также называемый Infer#) — это межпроцедурный и масштабируемый статический анализатор кода для C#. Благодаря возможностям Facebook's Infer этот инструмент обнаруживает разыменования нулевых указателей и утечки ресурсов.
Meziantou.Analyzer — Анализатор Roslyn для соблюдения некоторых хороших практик в C# с точки зрения дизайна, использования, безопасности, производительности и стиля.
NDepend ©️ — Измеряйте, запрашивайте и визуализируйте свой код и избегайте неожиданных проблем, технического долга и сложности.
Puma Scan — Puma Scan обеспечивает анализ безопасности кода в реальном времени для распространённых уязвимостей (XSS, SQLi, CSRF, LDAPi, криптография, десериализация и т. д.), пока команды разработчиков пишут код в Visual Studio.
Roslynator — Коллекция из более чем 190 анализаторов и более чем 190 рефакторингов для C#, работающих на базе Roslyn.
SonarAnalyzer.CSharp — Эти анализаторы Roslyn позволяют создавать чистый код, который безопасен, надёжен и поддерживаем, помогая находить и исправлять ошибки, уязвимости и «запахи» кода в вашей кодовой базе.
VSDiagnostics ⚠️ — Коллекция статических анализаторов на основе Roslyn, интегрирующихся с VS.
Wintellect.Analyzers ⚠️ — Диагностические анализаторы и исправления кода для .NET Compiler Platform («Roslyn»).
Astrée ©️ — Astrée автоматически доказывает отсутствие ошибок времени выполнения и некорректного параллельного поведения в приложениях на C/C++. Он корректен для вычислений с плавающей точкой, очень быстр и исключительно точен. Анализатор также проверяет правила кодирования MISRA/CERT/CWE/Adaptive Autosar и поддерживает квалификацию для ISO 26262, DO-178C уровня A и других стандартов безопасности. Доступны плагины для Jenkins и Eclipse.
CBMC — Model checker с ограниченной глубиной для программ на C, пользовательских утверждений, стандартных утверждений, анализа нескольких метрик покрытия.
clang-tidy — Инструмент линтинга C++ на основе Clang с (ограниченной) возможностью исправления проблем.
clazy — Ориентированный на Qt статический анализатор кода на основе фреймворка Clang. clazy — это плагин компилятора, который позволяет clang понимать семантику Qt. Вы получаете более 50 предупреждений компилятора, связанных с Qt, от ненужных выделений памяти до неправильного использования API, включая fix-its для автоматического рефакторинга.
CMetrics ⚠️ — Измеряет размер и сложность файлов C.
codechecker — База данных дефектов и расширение для просмотра Clang Static Analyzer с веб-GUI.
cppcheck — Статический анализ кода C/C++.
CppDepend ©️ — Измеряйте, запрашивайте и визуализируйте свой код и избегайте неожиданных проблем, технического долга и сложности.
cpplint — Автоматический чекер C++, следующий руководству по стилю Google.
cqmetrics ⚠️ — Метрики качества для кода C.
CScout — Метрики сложности и качества для кода C и препроцессора C.
ENRE-cpp ⚠️ — ENRE (ENtity Relationship Extractor) — инструмент для извлечения зависимостей или связей сущностей кода из исходного кода. ENRE-cpp — это ENtity Relationship Extractor для C/C++ на основе @eclipse/CDT. (В разработке)
ESBMC — ESBMC — это открытый, свободно лицензируемый, контекстно-ограниченный model checker на основе теорий разрешимости по модулю для верификации однопоточных и многопоточных программ на C/C++.
flawfinder — Находит возможные уязвимости безопасности.
flint++ ⚠️ — Кроссплатформенный порт flint без зависимостей, программы линтинга для C++, разработанной и используемой в Facebook.
GCC — Компилятор GCC обладает возможностями статического анализа начиная с версии 10. Эта опция доступна только если GCC был сконфигурирован с включённой поддержкой анализатора. Он также может выводить свою диагностику в файл JSON в формате SARIF (начиная с v13).
Helix QAC ©️ — Статический анализ корпоративного уровня для встраиваемого программного обеспечения. Поддерживает стандарты кодирования MISRA, CERT и AUTOSAR.
IKOS ⚠️ — Корректный статический анализатор для кода C/C++ на основе LLVM.
KLEE — Движок динамического символьного исполнения, построенный поверх инфраструктуры компилятора LLVM. Он может автоматически генерировать тестовые случаи для программ таким образом, чтобы тестовые случаи охватывали как можно большую часть программы.
LDRA ©️ — Набор инструментов, включающий статический анализ (TBVISION) для различных стандартов, включая MISRA C & C++, JSF++ AV, CWE, CERT C, CERT C++ и пользовательские правила.
MATE ⚠️ — Набор инструментов для интерактивного анализа программ с фокусом на поиск ошибок в коде C и C++. MATE объединяет анализ уязвимостей, специфичных для приложения, и низкоуровневый анализ с использованием графов свойств кода (CPG), что позволяет обнаруживать узкоспециализированные уязвимости, зависящие как от деталей реализации, так и от высокоуровневой семантики целевых программ на C/C++.
PC-lint ©️ — Статический анализ для C/C++. Работает нативно под Windows/Linux/MacOS. Анализирует код практически для любой платформы, поддерживая C11/C18 и C++17.
Phasar — Фреймворк статического анализа на основе LLVM, который включает анализ taint и type state.- Polyspace Bug Finder ©️ — Выявляет ошибки времени выполнения, проблемы параллелизма, уязвимости безопасности и другие дефекты во встраиваемом программном обеспечении на C и C++.
Polyspace Code Prover ©️ — Обеспечивает верификацию кода, доказывающую отсутствие переполнения, деления на ноль, выхода за границы массива и некоторых других ошибок времени выполнения в исходном коде на C и C++.
scan-build — Фронтенд для запуска Clang Static Analyzer, встроенного в Clang, через обычную сборку.
splint — Статический анализатор программ с поддержкой аннотаций.
SVF — Статический инструмент, обеспечивающий масштабируемый и точный межпроцедурный анализ зависимостей для программ на C и C++.
TrustInSoft Analyzer ©️ — Исчерпывающее обнаружение ошибок кодирования и связанных с ними уязвимостей безопасности. Это включает надёжное обнаружение неопределённого поведения (переполнения буфера, выход за границы массива, разыменование нулевого указателя, use-after-free, деление на ноль, обращения к неинициализированной памяти, знаковые переполнения, некорректная арифметика указателей и т. д.), верификацию потоков данных и управления, а также полную функциональную верификацию формальных спецификаций. Поддерживаются все версии C вплоть до C18 и C++ вплоть до C++20. TrustInSoft Analyzer получит квалификацию ISO 26262 во втором квартале 2023 года (TCL3). Также в комплект входит проверка MISRA C.
vera++ ⚠️ — Vera++ — это программируемый инструмент для верификации, анализа и преобразования исходного кода C++.
weggli ⚠️ — Быстрый и надёжный инструмент семантического поиска по кодовым базам на C и C++. Он предназначен для помощи исследователям безопасности в выявлении интересной функциональности в больших кодовых базах.
Dart Code Metrics ⚠️ — Дополнительный линтер для Dart. Сообщает метрики кода, проверяет на антипаттерны и предоставляет дополнительные правила для анализатора Dart.
effective_dart ⚠️ — Правила линтера, соответствующие рекомендациям Effective Dart
lint ⚠️ — Набор правил линтинга для проектов на Dart и Flutter, основанный на мнении сообщества. Похож на pedantic, но строже
Linter for dart ⚠️ — Линтер стиля для Dart.
DelphiLint — Пакет для IDE Delphi, обеспечивающий анализ кода и линтинг на лету на основе SonarDelphi.
Fix Insight ©️ — Бесплатный плагин для IDE для статического анализа кода. Редакция Pro включает инструмент командной строки для автоматизации.
Pascal Analyzer ©️ — Инструмент статического анализа кода с многочисленными отчётами. Доступна бесплатная версия Lite с ограниченной отчётностью.
Pascal Expert ©️ — Плагин для IDE для анализа кода. Включает подмножество возможностей отчётности Pascal Analyzer и доступен для Delphi версий 2007 и более поздних.
SonarDelphi — Статический анализатор Delphi для платформы качества кода SonarQube.
elm-analyse ⚠️ — Инструмент, позволяющий анализировать код на Elm, выявлять недостатки и применять лучшие практики.
elm-review — Анализирует целые проекты на Elm, с акцентом на разделяемые и пользовательские правила, написанные на Elm, которые добавляют гарантии, не предоставляемые компилятором Elm.
dialyzer — DIALYZER, DIscrepancy AnaLYZer для программ на ERlang. Dialyzer — это инструмент статического анализа, который выявляет расхождения в программном обеспечении, такие как явные ошибки типов, код, ставший мёртвым или недостижимым из-за ошибки программирования, и ненужные тесты, в отдельных модулях Erlang или целых (наборах) приложений. Dialyzer начинает свой анализ либо с отладочно скомпилированного байт-кода BEAM, либо из исходного кода Erlang. Файл и номер строки расхождения сообщаются вместе с указанием того, в чём заключается расхождение. Dialyzer основывает свой анализ на концепции success typings, что позволяет получать надёжные предупреждения (без ложных срабатываний).
elvis — Ревьюер стиля Erlang.
Primitive Erlang Security Tool (PEST) ⚠️ — Инструмент для базового сканирования исходного кода Erlang и сообщения о любых вызовах функций, которые могут сделать исходный код Erlang небезопасным.
fantomas — Форматтер исходного кода F#.
FSharpLint — Инструмент линтинга для F#.
ionide-analyzers — Коллекция анализаторов F#, созданных с помощью FSharp.Analyzers.SDK.
Fortitude — Линтер для Fortran, вдохновлённый (и построенный на) Ruff, основанный на лучших практиках сообщества. Поддерживает последний стандарт Fortran (2023).
fprettify — Автоформаттер для современного исходного кода на Fortran, написанный на Python. Fprettify — это инструмент, обеспечивающий согласованные пробелы, отступы и выравнивание разделителей в коде, включая возможность изменения регистра букв и обработки директив препроцессора, при этом сохраняя историю изменений и протестированный для интеграции с редакторами.
i-Code CNES for Fortran ⚠️ — Открытый инструмент статического анализа кода для Fortran 77, Fortran 90 и Shell.
aligncheck — Находит неэффективно упакованные структуры.
bodyclose — Проверяет, закрыто ли тело HTTP-ответа.
deadcode ⚠️ — Находит неиспользуемый код.
dingo-hunter ⚠️ — Статический анализатор для поиска взаимоблокировок в Go.
dogsled ⚠️ — Находит присваивания/объявления с слишком большим количеством пустых идентификаторов.
dupl — Сообщает о потенциально дублированном коде.
errcheck — Проверяет, что возвращаемые значения ошибок используются.
errwrap ⚠️ — Оборачивает и исправляет ошибки Go с помощью новой директивы глагола %w. Этот инструмент анализирует вызовы fmt.Errorf() и сообщает о вызовах, содержащих директиву глагола, отличную от новой директивы глагола %w, введённой в Go v1.13. Он также способен переписывать вызовы для использования новой директивы глагола обёртки %w.
flen — Получить информацию о длине функций в пакете Go.
Go Meta Linter ⚠️ — Одновременно запускает инструменты линтинга Go и нормализует их вывод. Используйте golangci-lint для новых проектов.
go tool vet --shadow — Сообщает о переменных, которые могли быть непреднамеренно затенены.
go vet — Изучает исходный код Go и сообщает о подозрительных местах.
go-consistent ⚠️ — Анализатор, помогающий сделать ваши программы на Go более согласованными.
go-critic — Линтер исходного кода Go, поддерживающий проверки, которые в настоящее время не реализованы в других линтерах.
go/ast — Пакет ast объявляет типы, используемые для представления синтаксических деревьев для пакетов Go.
goast — Инструмент статического анализа на основе AST (абстрактного синтаксического дерева) Go с Rego.
gochecknoglobals ⚠️ — Проверяет отсутствие глобальных переменных.
goconst — Находит повторяющиеся строки, которые можно заменить константой.
gocyclo — Вычисляет цикломатическую сложность функций в исходном коде Go.
gofmt -s — Проверяет, правильно ли отформатирован код и можно ли его ещё упростить.
gofumpt — Обеспечивает более строгий формат, чем gofmt, оставаясь обратно совместимым. То есть gofumpt доволен подмножеством форматов, которыми доволен gofmt.
Инструмент является форком gofmt по состоянию на Go 1.19 и требует Go 1.18 или более поздней версии. Его можно использовать как замену для форматирования вашего кода на Go, и запуск gofmt после gofumpt не должен вносить изменений.
gofumpt никогда не добавит правила, противоречащие форматированию gofmt. Таким образом, мы расширяем gofmt, а не конкурируем с ним.
goimports — Проверяет отсутствующие или неиспользуемые импорты пакетов.
gokart ⚠️ — Анализ безопасности Golang с акцентом на минимизацию ложных срабатываний. Он способен отслеживать источник переменных и аргументов функций, чтобы определить, безопасны ли входные источники.
GolangCI-Lint — Быстрый запускатель линтеров для Go. Он объединяет несколько линтеров Go и предоставляет унифицированную конфигурацию, кэширование и формат вывода. Альтернатива Go Meta Linter.
golint ⚠️ — Выводит ошибки стиля кодирования в исходном коде Go.
goreporter ⚠️ — Одновременно запускает множество линтеров и нормализует их вывод в отчёт.
goroutine-inspect ⚠️ — Интерактивный инструмент для анализа дампа горутин Golang.
gosec (gas) — Проверяет исходный код на проблемы безопасности путём сканирования AST Go.
gotype — Синтаксический и семантический анализ, аналогичный компилятору Go.
govulncheck — Govulncheck сообщает об известных уязвимостях, затрагивающих код Go. Он использует статический анализ исходного кода или таблицы символов бинарного файла, чтобы сузить отчёты только до тех, которые могут повлиять на приложение. По умолчанию govulncheck делает запросы к базе данных уязвимостей Go по адресу https://vuln.go.dev. Запросы к базе данных уязвимостей содержат только пути модулей, а не код или другие свойства вашей программы.
ineffassign ⚠️ — Обнаруживает неэффективные присваивания в коде Go.
interfacer ⚠️ — Предлагает более узкие интерфейсы, которые можно использовать.
lll ⚠️ — Сообщает о длинных строках.
maligned ⚠️ — Обнаруживает структуры, которые занимали бы меньше памяти, если бы их поля были отсортированы.
misspell ⚠️ — Находит часто встречающиеся орфографические ошибки в английских словах.
nakedret ⚠️ — Находит naked returns.
nargs ⚠️ — Находит неиспользуемые аргументы в объявлениях функций.
OSV-Scanner — Сканер уязвимостей, написанный на Go, который использует данные, предоставляемые OSV.dev. Разработан Google для сканирования зависимостей на нескольких языках и в менеджерах пакетов на предмет известных уязвимостей. Поддерживает сканирование контейнеров, сканирование лицензий и управляемое исправление. Работает с lock-файлами, SBOM и образами контейнеров для выявления проблем безопасности.
prealloc — Находит объявления срезов, которые потенциально можно предварительно выделить.
Reviewdog — Инструмент для публикации комментариев ревью от любого линтера в любом сервисе хостинга кода.
revive — Быстрый, настраиваемый, расширяемый, гибкий и красивый линтер для Go. Замена golint.
safesql ⚠️ — Инструмент статического анализа для Golang, защищающий от SQL-инъекций.
shisho ⚠️ — Лёгкий статический анализатор кода, предназначенный для разработчиков и команд безопасности. Он позволяет анализировать и преобразовывать исходный код с помощью интуитивного DSL, похожего на sed, но для кода.
staticcheck — Статический анализ Go, специализирующийся на поиске ошибок, упрощении кода и повышении производительности.
structcheck — Находит неиспользуемые поля структур.
structslop ⚠️ — Статический анализатор для Go, который рекомендует перестановку полей структур для обеспечения максимальной эффективности использования пространства/выделения памяти
test — Показывает местоположение сбоев тестов из модуля testing стандартной библиотеки.
unconvert — Обнаруживает избыточные преобразования типов.
unparam — Находит неиспользуемые параметры функций.
varcheck — Находит неиспользуемые глобальные переменные и константы.
wsl — Обеспечивает пустые строки в нужных местах.
brittany ⚠️ — Форматтер исходного кода Haskell
HLint — HLint — это инструмент для предложения возможных улучшений кода на Haskell.
Liquid Haskell — Liquid Haskell — это проверяющий типы уточнения для программ на Haskell.
Stan — Stan — это инструмент командной строки для анализа проектов на Haskell и вывода обнаруженных уязвимостей в удобной форме с возможными решениями для выявленных проблем.
Weeder — Инструмент для обнаружения мёртвых экспортов или импортов пакетов в коде на Haskell.
Checker Framework — Подключаемая проверка типов для Java. Это не просто поиск ошибок, а инструмент верификации, дающий гарантию корректности. Он поставляется с 27 предварительно созданными системами типов и позволяет пользователям определять свои собственные системы типов; руководство перечисляет более 30 систем типов, предоставленных пользователями.
checkstyle — Проверка исходного кода Java на соответствие стандарту кодирования или набору правил валидации (лучших практик).
ck — Вычисляет объектно-ориентированные метрики Чидамбера и Кемерера путём обработки исходных файлов Java.
ckjm ⚠️ — Вычисляет объектно-ориентированные метрики Чидамбера и Кемерера путём обработки байт-кода скомпилированных файлов Java.
CogniCrypt ⚠️ — Проверяет исходный код и байт-код Java на некорректное использование криптографических API.
Dataflow Framework — Промышленный фреймворк анализа потоков данных для Java. Dataflow Framework используется в Checker Framework, Google Error Prone, Uber NullAway, Meta Nullsafe и в других контекстах. Он распространяется вместе с Checker Framework.
DesigniteJava ©️ — DesigniteJava поддерживает обнаружение различных архитектурных, проектных и реализационных запахов, а также вычисление различных метрик качества кода.
Diffblue ©️ — Diffblue — это компания-разработчик программного обеспечения, предоставляющая решения для анализа кода и тестирования на основе ИИ для команд разработки программного обеспечения. Её технология помогает разработчикам автоматизировать тестирование, находить ошибки и сокращать ручной труд в процессах разработки программного обеспечения. Основной продукт компании, Diffblue Cover, использует ИИ для генерации и запуска модульных тестов для кода на Java, помогая выявлять ошибки и улучшать качество кода.
Doop — Doop — это декларативный фреймворк для статического анализа программ на Java/Android, сосредоточенный на алгоритмах анализа указателей. Doop предоставляет большое разнообразие анализов, а также окружающие строительные леса для запуска анализа от начала до конца (генерация фактов, обработка, статистика и т. д.).
ENRE-java ⚠️ — ENRE (ENtity Relationship Extractor) — это инструмент для извлечения зависимостей или связей сущностей кода из исходного кода. ENRE-java — это ENtity Relationship Extractor для проектов на Java, основанный на @Eclipse JDT/parser.
Error Prone — Отлавливает распространённые ошибки Java как ошибки времени компиляции.
fb-contrib — Плагин для FindBugs с дополнительными детекторами ошибок.
forbidden-apis — Обнаруживает и запрещает вызовы конкретного метода/класса/поля (например, чтение из текстового потока без кодировки). Совместим с Maven/Gradle/Ant.
google-java-format — Переформатирует исходный код Java в соответствии с Google Java Style
HuntBugs ⚠️ — Инструмент статического анализа байт-кода на основе Procyon Compiler Tools, призванный заменить FindBugs.
IntelliJ IDEA ©️ — Поставляется с множеством инспекций для Java и Kotlin и включает инструменты для рефакторинга, форматирования и многого другого.
JArchitect ©️ — Измеряйте, запрашивайте и визуализируйте свой код и избегайте неожиданных проблем, технического долга и сложности.
JBMC — Ограниченный модельный чекер для Java (байт-кода), проверяет пользовательские утверждения, стандартные утверждения, несколько анализов метрик покрытия.
JLiSA — Статический анализатор на основе абстрактной интерпретации для Java, построенный на фреймворке LiSA.
Mariana Trench — Наш инструмент статического анализа с фокусом на безопасность для приложений на Android и Java. Mariana Trench анализирует байт-код Dalvik и создан для быстрой работы на больших кодовых базах (десятки миллионов строк кода). Он может находить уязвимости по мере изменения кода, ещё до того, как они попадут в ваш репозиторий.
NullAway — Проверка нулевых указателей на основе типов с низкими накладными расходами на сборку; плагин Error Prone.
OWASP Dependency Check ⚠️ — Проверяет зависимости на наличие известных, публично раскрытых уязвимостей.
qulice — Объединяет несколько (предварительно настроенных) инструментов статического анализа (checkstyle, PMD, Findbugs, ...).
RefactorFirst — Выявляет и расставляет приоритеты для God-классов и сильно связанных классов в кодовых базах Java, которые вам следует рефакторить в первую очередь.
Soot — Фреймворк для анализа и преобразования приложений на Java и Android.- Spoon — Spoon — это библиотека метапрограммирования для анализа и преобразования исходного кода Java (включая Java 9, 10, 11, 12, 13, 14). Она разбирает исходные файлы для построения хорошо спроектированного AST с мощным API анализа и преобразования. Может быть интегрирована в Maven и Gradle.
SpotBugs — SpotBugs — преемник FindBugs. Инструмент статического анализа для поиска ошибок в коде Java.
steady ⚠️ — Анализирует ваши Java-приложения на предмет зависимостей с открытым исходным кодом, содержащих известные уязвимости, используя как статический анализ, так и тестирование для определения контекста и использования кода с большей точностью.
Violations Lib — Java-библиотека для разбора файлов отчётов статического анализа кода. Используется рядом плагинов Jenkins, Maven и Gradle.
aether ⚠️ — Линтинг, анализ, нормализация, преобразование, песочница, запуск, пошаговое выполнение и визуализация пользовательского JavaScript в node или браузере.
Closure Compiler — Инструмент-компилятор для повышения эффективности, уменьшения размера и выдачи предупреждений о коде в файлах JavaScript.
ClosureLinter ⚠️ — Гарантирует, что весь JavaScript-код вашего проекта соответствует рекомендациям Google JavaScript Style Guide. Также может автоматически исправлять многие распространённые ошибки.
complexity-report ⚠️ — Анализ сложности программного обеспечения для проектов на JavaScript.
DeepScan ©️ — Анализатор для JavaScript, нацеленный на ошибки времени выполнения и проблемы качества, а не на соглашения о кодировании.
es6-plato ⚠️ — Визуализация сложности исходного кода JavaScript (ES6).
escomplex ⚠️ — Анализ сложности программного обеспечения абстрактных синтаксических деревьев семейства JavaScript.
Esprima ⚠️ — Инфраструктура разбора ECMAScript для многоцелевого анализа.
flow — Статический проверщик типов для JavaScript.
hegel ⚠️ — Статический проверщик типов для JavaScript с уклоном в вывод типов и сильные системы типов.
jshint ℹ️ ⚠️ — Обнаруживает ошибки и потенциальные проблемы в коде JavaScript и обеспечивает соблюдение соглашений о кодировании вашей команды.
JSPrime ⚠️ — Инструмент статического анализа безопасности.
NodeJSScan ⚠️ — Статический сканер безопасности кода для приложений Node.js, работающий на базе libsast и semgrep, построенный на основе CLI-инструмента njsscan. Имеет UI с различными дашбордами о состоянии безопасности приложения.
plato ⚠️ — Визуализация сложности исходного кода JavaScript.
Polymer-analyzer — Фреймворк статического анализа для Web Components.
retire.js — Сканер, обнаруживающий использование библиотек JavaScript с известными уязвимостями.
RSLint ⚠️ — (WIP) Линтер JavaScript, написанный на Rust, спроектированный так, чтобы быть максимально быстрым, настраиваемым и простым в использовании.
squirrelscan — squirrelscan — это инструмент QA для веб-сайтов, созданный для агентов программирования, таких как Claude Code и Cursor. Его CLI squirrel обходит живой сайт и запускает более 260 правил аудита по SEO, производительности, безопасности, доступности, структурированным данным и опыту агентов, а затем возвращает точные исправления с привязкой к исходному коду. Работает из терминала, CI, облака или через MCP.
standard ⚠️ — npm-модуль, который проверяет соблюдение Javascript Styleguide.
tern — Анализатор кода JavaScript для глубокой поддержки языка в разных редакторах.
TypL ⚠️ — С TypL вы просто пишете полностью стандартный JS, а инструмент определяет ваши типы с помощью мощного вывода типов.
xo — Самоуверенная, но настраиваемая обёртка ESLint со множеством полезных дополнений. Обеспечивает строгий и читаемый код.
yardstick ⚠️ — Метрики кода Javascript.
JET — Система статического вывода типов для обнаружения ошибок и нестабильностей типов.
StaticLint — Статический анализ кода для Julia
detekt — Статический анализ кода для Kotlin.
diktat ⚠️ — Строгий стандарт кодирования для Kotlin и линтер, который обнаруживает и автоматически исправляет code smells.
ktfmt — Программа, которая переформатирует исходный код Kotlin в соответствии с общим общественным стандартом соглашений о кодировании Kotlin. Плагин ktfmt для IntelliJ доступен в репозитории плагинов. Чтобы установить его, перейдите в настройки вашей IDE и выберите категорию Plugins. Нажмите вкладку Marketplace, найдите плагин ktfmt и нажмите кнопку Install.
ktlint — Анти-bikeshedding линтер для Kotlin со встроенным форматтером.
luacheck — Инструмент для линтинга и статического анализа кода Lua.
lualint ⚠️ — lualint выполняет статический анализ использования глобальных переменных в исходном коде Lua на основе luac.
Luanalysis ⚠️ — IDE для разработки на статически типизированном Lua.
MISS_HIT ⚠️ — MISS_HIT — это бесплатный набор инструментов качества кода с открытым исходным кодом для MATLAB, Simulink и Octave. Он включает MH Style (проверка стиля и форматирование), MH Metrics (метрики сложности), MH Lint (статический анализ), MH Trace (трассируемость требований) и MH Copyright (управление авторскими правами). Спроектирован для работы автономно без необходимости установки MATLAB/Octave.
mlint ©️ — Проверяет файлы кода MATLAB на возможные проблемы.
DrNim — DrNim объединяет фронтенд Nim с движком доказательств Z3, чтобы позволить верифицировать / валидировать программное обеспечение, написанное на Nim.
nimfmt ⚠️ — Форматтер / линтер / проверщик стиля кода Nim
Sys ⚠️ — Статический/символический инструмент для поиска ошибок в (браузерном) коде. Использует LLVM AST для поиска таких ошибок, как доступ к неинициализированной памяти.
VeriFast — Инструмент для модульной формальной верификации свойств корректности однопоточных и многопоточных программ на C и Java, аннотированных предусловиями и постусловиями, написанными на логике разделения. Для выражения богатых спецификаций программист может определять индуктивные типы данных, примитивно рекурсивные чистые функции над этими типами данных и абстрактные предикаты логики разделения.
CakeFuzzer ⚠️ — Инструмент тестирования безопасности веб-приложений для веб-приложений на базе CakePHP. CakeFuzzer применяет предопределённый набор атак, которые случайным образом модифицируются перед выполнением. Используя глубокое понимание фреймворка Cake PHP, Cake Fuzzer запускает атаки на все потенциальные точки входа приложения.
churn-php — Помогает выявить хороших кандидатов для рефакторинга.
composer-dependency-analyser — Быстрое обнаружение проблем с зависимостями composer.
dephpend — Инструмент анализа зависимостей.
deprecation-detector ⚠️ — Находит использования устаревшего (Symfony) кода.
deptrac — Обеспечивает соблюдение правил зависимостей между слоями программного обеспечения.
DesignPatternDetector ⚠️ — Обнаружение паттернов проектирования в коде PHP.
EasyCodingStandard — Объединяет PHP_CodeSniffer и PHP-CS-Fixer.
Enlightn ⚠️ — Инструмент статического и динамического анализа для приложений Laravel, который предоставляет рекомендации по улучшению производительности, безопасности и надёжности кода приложений Laravel. Содержит 120 автоматизированных проверок.
exakat ⚠️ — Автоматизированный движок ревью кода для PHP.
GrumPHP — Проверяет код при каждом коммите.
larastan — Добавляет статический анализ в Laravel, повышая производительность разработчика и качество кода. Это обёртка вокруг PHPStan.
mago — Mago — это полный набор инструментов для PHP, написанный на Rust и спроектированный с нуля для максимальной производительности.
✨ Молниеносно быстрый форматтер, который автоматически форматирует ваш код в соответствии с PER-CS, навсегда прекращая споры о стиле. - 🔎 Интеллектуальный линтер, который выявляет стилистические проблемы, несоответствия и code smells до того, как они станут проблемами. - 🔬 Мощный статический анализатор, который находит ошибки типов и логические ошибки в вашем коде без необходимости его запускать. - 🛡️ Надёжный архитектурный страж, который обеспечивает соблюдение правил зависимостей и структурных соглашений.
Mondrian ⚠️ — Набор инструментов статического анализа и рефакторинга, использующих теорию графов.
parallel-lint — Этот инструмент проверяет синтаксис файлов PHP быстрее, чем последовательная проверка, с более изящным выводом.
Parse ⚠️ — Статический сканер безопасности.
pdepend — Вычисляет метрики программного обеспечения, такие как цикломатическая сложность, для кода PHP.
phan — Современный статический анализатор от etsy.
PHP Architecture Tester — Простой в использовании инструмент тестирования архитектуры для PHP.
PHP Assumptions ⚠️ — Проверяет слабые предположения.
PHP Coding Standards Fixer — Исправляет ваш код в соответствии со стандартами, такими как PSR-1, PSR-2 и стандартом Symfony.
PHP Insights — Мгновенные проверки качества PHP из вашей консоли. Анализ качества кода и стиля кодирования, а также обзор архитектуры кода и её сложности.
Php Inspections (EA Extended) — Статический анализатор кода для PHP.
PHP Refactoring Browser ⚠️ — Помощник рефакторинга.
PHP Semantic Versioning Checker — Предлагает следующую версию в соответствии с семантическим версионированием.
PHP-Parser — Парсер PHP, написанный на PHP.
php-speller ⚠️ — Библиотека проверки орфографии для PHP.
PHP-Token-Reflection ⚠️ — Библиотека, эмулирующая внутреннюю рефлексию PHP.
php7cc ⚠️ — Проверщик совместимости с PHP 7.
php7mar ⚠️ — Помогает разработчикам быстро перенести свой код на PHP 7.
PHP_CodeSniffer ⚠️ — Обнаруживает нарушения определённого набора стандартов кодирования.
PHPArkitect — PHPArkitect помогает поддерживать вашу кодовую базу PHP согласованной и надёжной, позволяя добавить проверку архитектурных ограничений в ваш рабочий процесс. Вы можете выразить ограничение, которое хотите обеспечить, на простом и читаемом коде PHP.
phpca ⚠️ — Находит использование невстроенных расширений.
phpcpd ⚠️ — Детектор копирования/вставки для кода PHP.
phpdcd ⚠️ — Детектор мёртвого кода (DCD) для кода PHP.
PhpDependencyAnalysis ⚠️ — Строит граф зависимостей для проекта.
PhpDeprecationDetector ⚠️ — Анализатор кода PHP для поиска проблем с устаревшей функциональностью в более новых версиях интерпретатора. Он находит удалённые объекты (функции, переменные, константы и ini-директивы), устаревшую функциональность функций и использование запрещённых имён или приёмов (например, зарезервированных идентификаторов в более новых версиях).
phpdoc-to-typehint ⚠️ — Добавляет скалярные подсказки типов и возвращаемые типы в существующие проекты PHP, используя аннотации PHPDoc.
phpDocumentor — Анализирует исходный код PHP для генерации документации.
phploc ⚠️ — Инструмент для быстрого измерения размера и анализа структуры проекта PHP.
PHPMD — Находит возможные ошибки в вашем коде.
PhpMetrics — Вычисляет и визуализирует различные метрики качества кода.
phpmnd — Помогает обнаруживать магические числа.
PHPQA — Инструмент для запуска инструментов QA (phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics).
phpqa - jakzal — Множество инструментов для статического анализа PHP в одном контейнере.
phpqa - jmolivas ⚠️ — Универсальный CLI-инструмент анализа PHPQA.
phpsa ⚠️ — Инструмент статического анализа для PHP.
PHPStan — Инструмент статического анализа PHP — находите ошибки в вашем коде без его запуска!
Progpilot ⚠️ — Инструмент статического анализа для целей безопасности.
Psalm — Инструмент статического анализа для поиска ошибок типов в приложениях PHP.
Qafoo Quality Analyzer ⚠️ — Визуализирует метрики и исходный код.
rector — Мгновенные обновления и автоматизированный рефакторинг любого кода PHP 5.3+. Он обновляет ваш код для PHP 7.4, 8.0 и выше. Rector обещает низкий уровень ложных срабатываний, поскольку ищет узко определённые паттерны AST (абстрактного синтаксического дерева). Основные варианты использования — устранение технического долга в вашем устаревшем коде и удаление мёртвого кода. Rector предоставляет набор специальных правил для Symfony, Doctrine, PHPUnit и многих других.
Reflection — Библиотека рефлексии для статического анализа проектов PHP
Symfony Insight ©️ — Обнаруживает риски безопасности, находит ошибки и предоставляет практические метрики для проектов PHP.
Tuli ⚠️ — Движок статического анализа.
twig-lint ⚠️ — twig-lint — это инструмент линтинга для ваших файлов twig.
WAP — Инструмент для обнаружения и исправления уязвимостей валидации ввода в веб-приложениях на PHP (4.0 или выше), который предсказывает ложные срабатывания, комбинируя статический анализ и интеллектуальный анализ данных.
Perl::Analyzer ⚠️ — Perl-Analyzer — это набор программ и модулей, которые позволяют пользователям анализировать и визуализировать кодовые базы Perl, предоставляя информацию о пространствах имён и их отношениях, зависимостях, наследовании и методах, реализованных, унаследованных и переопределённых в пакетах, а также о вызовах методов из родительских пакетов через SUPER.
Perl::Critic — Критикует исходный код Perl на предмет лучших практик.
perltidy — Perltidy — это скрипт Perl, который делает отступы и переформатирует скрипты Perl, чтобы их было легче читать. Форматированием можно управлять с помощью параметров командной строки. Настройки параметров по умолчанию приблизительно следуют рекомендациям Perl Style Guide. Помимо переформатирования скриптов, Perltidy может оказать большую помощь в отслеживании ошибок с пропущенными или лишними фигурными скобками, круглыми скобками и квадратными скобками, поскольку он очень хорошо локализует ошибки.
zarn — Лёгкий инструмент статического анализа безопасности для современных приложений Perl
autoflake — Autoflake удаляет неиспользуемые импорты и неиспользуемые переменные из кода Python.
autopep8 — Инструмент, который автоматически форматирует код Python в соответствии с руководством по стилю PEP 8. Он использует утилиту pycodestyle для определения того, какие части кода нужно отформатировать.
bandit — Инструмент для поиска распространённых проблем безопасности в коде Python.
bellybutton ⚠️ — Движок линтинга, поддерживающий пользовательские правила для конкретного проекта.
Black — Бескомпромиссный форматтер кода Python.
Bowler ⚠️ — Безопасный рефакторинг кода для современного Python. Bowler — это инструмент рефакторинга для манипулирования Python на уровне синтаксического дерева. Он обеспечивает безопасные крупномасштабные модификации кода, гарантируя, что результирующий код компилируется и запускается. Он предоставляет как простой интерфейс командной строки, так и гибкий API на Python для генерации сложных модификаций кода в коде.
ciocheck ⚠️ — Помощник для линтера, форматтера и набора тестов. Как линтер, это обёртка вокруг pep8, pydocstyle, flake8 и pylint.
cohesion ⚠️ — Инструмент для измерения связности классов Python.
deal — Проектирование по контракту для Python. Пишите код без ошибок. Добавив несколько декораторов в ваш код, вы бесплатно получаете тесты, статический анализ, формальную верификацию и многое другое.
Dlint — Инструмент для обеспечения безопасности кода Python.
Dodgy ⚠️ — Dodgy — это очень простой инструмент для запуска против вашей кодовой базы для поиска «подозрительных» значений. Это серия простых регулярных выражений, предназначенных для обнаружения таких вещей, как случайные коммиты diff-ов SCM, или паролей или секретных ключей, жёстко закодированных в файлах.
ENRE-py ⚠️ — ENRE (ENtity Relationship Extractor) — это инструмент для извлечения зависимостей или отношений сущностей кода из исходного кода. ENRE-py — это ENtity Relationship Extractor для Python, основанный на Python Language Services из стандартной библиотеки.
fixit — Фреймворк для создания правил линтинга и соответствующих автоисправлений для исходного кода.
flake8 — Обёртка вокруг pyflakes, pycodestyle и mccabe.
flakeheaven ⚠️ — flakeheaven — это линтер Python, построенный вокруг flake8, чтобы обеспечить наследуемую и сложную конфигурацию toml.
Griffe — Сигнатуры для целых программ Python. Извлекает структуру, каркас, скелет вашего проекта, чтобы генерировать документацию API или находить критические изменения в вашем API.
InspectorTiger ⚠️ — IT, Inspector Tiger, — это современный инструмент / фреймворк ревью кода Python. Он поставляется с набором предопределённых обработчиков, которые предупреждают вас об улучшениях и возможных ошибках. Помимо этих обработчиков, вы можете написать свои собственные или использовать обработчики сообщества.
jedi — Библиотека автодополнения/статического анализа для Python.
linty fresh ⚠️ — Разбирает ошибки линтинга и сообщает о них в Github как комментарии к pull request.
mbake — mbake — это форматтер и линтер Makefile. Понадобилось всего 50 лет!
mccabe — Проверяет сложность Маккейба.
multilint ⚠️ — Обёртка вокруг flake8, isort и modernize.
mypy — Статический проверщик типов, который стремится объединить преимущества утиной типизации и статической типизации, часто используется с MonkeyType.- pip-audit — Инструмент для сканирования пакетов Python на наличие известных уязвимостей. Разработан Python Packaging Authority (PyPA) при поддержке Trail of Bits и Google. Сканирует окружения Python и файлы requirements для выявления уязвимых пакетов и предлагает способы устранения. Поддерживает GitHub Actions, pre-commit hooks и интеграцию с несколькими сервисами анализа уязвимостей.
prospector — Обёртка вокруг pylint, pep8, mccabe и других.
py-find-injection ⚠️ — Поиск уязвимостей SQL-инъекций в коде Python.
pyanalyze — Инструмент для программного обнаружения распространённых ошибок в коде Python, таких как ссылки на неопределённые переменные и ошибки типов. Может быть расширен для добавления дополнительных правил и выполнения проверок, специфичных для конкретных функций.
pycodestyle — (Ранее pep8) Проверка кода Python на соответствие некоторым стилевым соглашениям PEP 8.
pydocstyle ⚠️ — Проверка соответствия соглашениям о docstring в Python.
pyflakes ⚠️ — Проверка исходных файлов Python на наличие ошибок.
pylint — Ищет ошибки программирования, помогает соблюдать стандарт кодирования и выявляет некоторые «запахи» кода. Дополнительно включает pyreverse (генератор UML-диаграмм) и symilar (проверка схожести).
pylyzers ⚠️ — Статический анализатор кода / языковой сервер для Python, написанный на Rust, ориентированный на проверку типов и читаемый вывод.
Pyra — Pyra — это высокоуровневый статический анализатор-линтер для приложений в области data science, написанных на Python, который помогает разработчикам выявлять потенциальные проблемы в их коде для data science на Python, являясь расширением Lyra.
pyre-check — Быстрый, масштабируемый проверщик типов для больших кодовых баз Python. Pyre-check был заменён на Pyrefly, его следующую итерацию.
pyrefly — Быстрый, инкрементальный проверщик типов и языковой сервер для Python, предоставляющий функции IDE, такие как навигация по коду, семантическая подсветка и автодополнение кода.
pyright — Статический проверщик типов для Python, созданный для устранения пробелов в существующих инструментах, таких как mypy.
pyroma — Оценивает, насколько хорошо проект Python соответствует лучшим практикам экосистемы упаковки Python, и перечисляет проблемы, которые можно улучшить.
Pysa — Инструмент на основе pyre-check от Facebook для выявления потенциальных проблем безопасности в коде Python с помощью taint-анализа.
pyscn — Интеллектуальный анализатор качества кода Python с анализом цикломатической сложности на основе CFG, обнаружением мёртвого кода, обнаружением клонов (типы 1-4) и метриками связанности. Использует tree-sitter для парсинга. Написан на Go.
PyT - Python Taint ⚠️ — Инструмент статического анализа для обнаружения уязвимостей безопасности в веб-приложениях на Python.
pytype — Статический анализатор типов для кода Python.
pyupgrade — Инструмент (и pre-commit hook) для автоматического обновления синтаксиса до новых версий языка.
QuantifiedCode ⚠️ — Автоматизированное ревью и исправление кода. Помогает отслеживать проблемы и метрики в ваших программных проектах и легко расширяется для поддержки новых типов анализа.
radon ⚠️ — Инструмент Python, вычисляющий различные метрики из исходного кода.
refurb — Инструмент для обновления и модернизации кодовых баз Python. Refurb во многом вдохновлён clippy, встроенным линтером для Rust.
ruff — Быстрый линтер Python, написанный на Rust. В 10-100 раз быстрее существующих линтеров. Совместим с Python 3.10. Поддерживает наблюдение за файлами.
Safety — Сканер уязвимостей зависимостей Python, предназначенный для повышения безопасности цепочки поставок программного обеспечения путём обнаружения пакетов с известными уязвимостями. Проверяет зависимости Python по базе данных известных уязвимостей безопасности и предоставляет подробные отчёты. Поддерживает интеграцию с CI/CD и несколько форматов вывода.
ty — Чрезвычайно быстрый проверщик типов Python, написанный на Rust.
unimport — Линтер и форматтер для поиска и удаления неиспользуемых инструкций импорта.
vulture — Поиск неиспользуемых классов, функций и переменных в коде Python.
wemake-python-styleguide — Самый строгий и категоричный линтер Python из когда-либо созданных.
wily — Инструмент командной строки для архивирования, исследования и построения графиков сложности исходного кода Python.
xenon ⚠️ — Мониторинг сложности кода с помощью radon.
yapf ⚠️ — Форматтер для файлов Python, созданный Google YAPF следует особой методологии, берущей начало от инструмента 'clang-format', созданного Daniel Jasper. По сути, программа переформатирует код в наиболее подходящий формат, соответствующий руководству по стилю, даже если исходный код уже следует этому руководству. Эта концепция аналогична инструменту 'gofmt' языка программирования Go, который стремится положить конец спорам о форматировании, пропуская всю кодовую базу проекта через YAPF при каждом изменении, тем самым поддерживая единый стиль во всём проекте и устраняя необходимость спорить о стиле при каждом ревью кода.
CodeDepends — Статический анализ кода для R.
cyclocomp ⚠️ — Количественно оценивает цикломатическую сложность функций / выражений R.
flowR — Слайсер программ и анализатор потоков данных для языка программирования R. Его слайсер позволяет сократить сложную программу до частей, относящихся к конкретной задаче (например, генерации одного или набора графиков, проверке значимости, ...). Анализ потоков данных даёт детальное представление о семантике кода R, что может значительно улучшить другие виды анализа. Чтобы использовать flowR, ознакомьтесь с расширением для Visual Studio Code, аддоном для RStudio, Docker-образом или пакетом R.
goodpractice — Анализирует исходный код пакетов R и предоставляет рекомендации по лучшим практикам.
lintr — Статический анализ кода для R.
R Language Server — Предоставляет автодополнение кода, рефакторинг, сворачивание, диагностику (с помощью lintr) и многое другое для R.
rco ⚠️ — Оптимизатор производительности для кода R (с графическим интерфейсом).
styler — Форматирование файлов исходного кода R и красивое оформление кода R.
Active Record Doctor — Выявляйте проблемы базы данных до того, как они попадут в продакшен.
brakeman — Сканер статического анализа уязвимостей безопасности для приложений Ruby on Rails.
Bullet — Помогает устранить N+1 запросов и неиспользуемую жадную загрузку.
bundler-audit — Аудит Gemfile.lock на наличие гемов с уязвимостями безопасности, зарегистрированными в Ruby Advisory Database.
cane ⚠️ — Проверка пороговых значений качества кода в рамках вашей сборки.
Churn ⚠️ — Проект для получения файла, класса и метода с наибольшим числом изменений для проекта за данный коммит. Со временем инструмент накапливает историю изменений, чтобы показать, сколько раз файл, класс или метод менялся за время жизни проекта.
DatabaseConsistency — Инструмент для предотвращения различных проблем из-за несоответствий и неэффективности между схемой базы данных и моделями приложения.
dawnscanner ⚠️ — Сканер статического анализа безопасности для веб-приложений, написанных на Ruby. Поддерживает фреймворки Sinatra, Padrino и Ruby on Rails.
ERB Lint — Линтер для ваших файлов ERB или HTML
ERB::Formatter ⚠️ — Форматирование файлов ERB со скоростью и точностью.
Fasterer ⚠️ — Проверка распространённых идиом Ruby.
flay — Flay анализирует код на структурное сходство.
flog — Flog сообщает о наиболее «измученном» коде в удобном для чтения отчёте о боли. Чем выше оценка, тем больше боли в коде.
Fukuzatsu ⚠️ — Инструмент для измерения сложности кода в файлах классов Ruby. Его анализ генерирует оценки на основе алгоритмов цикломатической сложности без добавления «мнений».
htmlbeautifier ⚠️ — Нормализатор/форматтер для HTML, который также понимает встроенный Ruby. Идеален для приведения в порядок шаблонов Rails.
laser ⚠️ — Статический анализ и линтер стиля для кода Ruby.
MetricFu ⚠️ — MetricFu — это набор инструментов для создания отчётов, показывающих, какие части вашего кода могут требовать дополнительной работы.
pelusa ⚠️ — Инструмент статического анализа типа Lint для улучшения вашего ООП-кода на Ruby.
quality ⚠️ — Запускает проверки качества вашего кода с помощью инструментов сообщества и следит за тем, чтобы ваши показатели не ухудшались со временем.
Querly ⚠️ — Инструмент проверки на основе шаблонов для Ruby.
Railroader ⚠️ — Открытый сканер статического анализа уязвимостей безопасности для приложений Ruby on Rails.
rails_best_practices — Инструмент метрик кода для проектов Rails
reek — Детектор «запахов» кода для Ruby.
Roodi ⚠️ — Roodi расшифровывается как Ruby Object Oriented Design Inferometer. Он парсит ваш код Ruby и предупреждает о проблемах дизайна на основе настроенных проверок.
RuboCop — Статический анализатор кода Ruby, основанный на руководстве по стилю Ruby от сообщества.
Rubrowser ⚠️ — Интерактивный генератор графа зависимостей классов Ruby.
ruby-lint ⚠️ — Статический анализ кода для Ruby.
rubycritic — Инструмент отчётности о качестве кода Ruby.
rufo — Категоричный форматтер Ruby, предназначенный для использования через командную строку в качестве плагина текстового редактора для автоформатирования файлов при сохранении или по запросу.
Saikuro ⚠️ — Анализатор цикломатической сложности Ruby.
SandiMeter ⚠️ — Инструмент статического анализа для проверки кода Ruby на соответствие правилам Sandi Metz.
Skunk — Калькулятор SkunkScore для кода Ruby — найдите самый сложный код без тестового покрытия!
Sorbet — Быстрый, мощный проверщик типов, разработанный для Ruby.
Standard Ruby — Руководство по стилю Ruby с линтером и автоматическим исправлением кода
Steep — Постепенная типизация для Ruby.
Traceroute ⚠️ — Гем с задачей Rake, который помогает находить неиспользуемые маршруты и действия контроллеров в вашем приложении на Rails 3+.
C2Rust — C2Rust помогает переносить код, совместимый с C99, на Rust. Транслятор (или транспайлер) создаёт небезопасный код Rust, который точно повторяет входной код C.
cargo udeps — Поиск неиспользуемых зависимостей в Cargo.toml. Либо выводит строку "unused crates" со списком крейтов, либо выводит строку о том, что неиспользуемых крейтов не было.
cargo-audit — Аудит Cargo.lock на наличие крейтов с уязвимостями безопасности, зарегистрированными в RustSec Advisory Database.
cargo-bloat ⚠️ — Выясните, что занимает большую часть места в вашем исполняемом файле. Поддерживает бинарники ELF (Linux, BSD), Mach-O (macOS) и PE (Windows).
cargo-breaking ⚠️ — cargo-breaking сравнивает публичный API крейта между двумя разными ветками, показывает, что изменилось, и предлагает следующую версию в соответствии с semver.
cargo-call-stack ⚠️ — Статический анализ стека всей программы. Инструмент создаёт полный граф вызовов программы в виде dot-файла.
cargo-deny — Плагин cargo для линтинга ваших зависимостей. Может использоваться как инструмент командной строки, крейт Rust или Github action для CI. Проверяет корректность информации о лицензиях, дублирующиеся крейты, уязвимости безопасности и многое другое.
cargo-expand — Подкоманда Cargo для отображения результата раскрытия макросов и раскрытия #[derive], применённых к текущему крейту. Это обёртка вокруг более многословной команды компилятора.
cargo-geiger — Плагин cargo для анализа использования небезопасного кода Rust. Предоставляет статистический вывод для помощи в аудите безопасности
cargo-inspect ⚠️ — Изучайте код Rust без синтаксического сахара, чтобы увидеть, что компилятор делает за кулисами.
cargo-semver-checks — Сканируйте релизы ваших крейтов Rust на нарушения semver. Может использоваться напрямую через CLI, как GitHub Action в CI или через менеджеры релизов, такие как release-plz. Он обнаружил нарушения semver в более чем 1 из 6 из 1000 самых скачиваемых крейтов на crates.io.
cargo-show-asm — Подкоманда cargo, показывающая ассемблер, LLVM-IR и MIR, сгенерированные для кода Rust
cargo-spellcheck — Проверяет всю вашу документацию на орфографические и грамматические ошибки с помощью hunspell (готово) и languagetool (предпросмотр)
cargo-unused-features ⚠️ — Находит потенциально неиспользуемые включённые флаги функций и удаляет их. Вы можете сгенерировать простой HTML-отчёт из json, чтобы упростить просмотр результатов. Он удаляет функцию зависимости, а затем компилирует проект, чтобы проверить, компилируется ли он по-прежнему. Если да, флаг функции, возможно, можно удалить, но это может быть ложноположительным результатом.
clippy — Линтер кода для выявления распространённых ошибок и улучшения вашего кода Rust.
diff.rs — Веб-приложение (WASM) для отображения diff между версиями крейтов Rust.
dylint — Инструмент для запуска линтов Rust из динамических библиотек. Dylint позволяет разработчикам легко поддерживать свои собственные коллекции линтов.
electrolysis ⚠️ — Инструмент для формальной верификации программ на Rust путём их транспиляции в определения в доказателе теорем Lean.
herbie ⚠️ — Добавляет предупреждения или ошибки в ваш крейт при использовании численно нестабильного выражения с плавающей точкой.
kani — Kani Rust Verifier — это бит-точный модельный чекер для Rust. Kani особенно полезен для верификации блоков небезопасного кода в Rust, где «небезопасные суперспособности» не проверяются компилятором. Kani проверяет:
linter-rust ⚠️ — Линтинг ваших файлов Rust в Atom с использованием rustc и cargo.
lockbud — Статически обнаруживает ошибки взаимоблокировок в Rust. В настоящее время обнаруживает два распространённых вида ошибок взаимоблокировок: doublelock и блокировки в конфликтующем порядке. Выводит ошибки в формате JSON вместе с местоположением в исходном коде и объяснением каждой ошибки.
MIRAI ⚠️ — Абстрактный интерпретатор, работающий на промежуточном языке среднего уровня Rust и предоставляющий предупреждения на основе taint-анализа.
prae ⚠️ — Предоставляет удобный макрос, позволяющий генерировать обёртки типов, которые обещают всегда соблюдать произвольные инварианты, заданные вами.
Prusti ⚠️ — Статический верификатор для Rust, основанный на инфраструктуре верификации Viper. По умолчанию Prusti проверяет отсутствие паник, доказывая, что такие инструкции, как unreachable!() и panic!(), недостижимы.
Rudra — Обнаружение проблем безопасности памяти и неопределённого поведения в Rust. Способен анализировать как отдельные пакеты Rust, так и все пакеты на crates.io.
Rust Language Server ⚠️ — Поддерживает такие функции, как 'переход к определению', поиск символов, переформатирование и автодополнение кода, а также позволяет выполнять переименование и рефакторинг.
rust-analyzer — Поддерживает такие функции, как 'переход к определению', вывод типов, поиск символов, переформатирование и автодополнение кода, а также позволяет выполнять переименование и рефакторинг.
rust-audit — Аудит бинарников Rust на наличие известных ошибок или уязвимостей безопасности. Работает путём встраивания данных о дереве зависимостей (Cargo.lock) в формате JSON в специальную секцию линкера скомпилированного исполняемого файла.
rustfix ⚠️ — Читает и применяет предложения, сделанные rustc (и сторонними линтами, например, предлагаемыми clippy).
rustfmt — Инструмент для форматирования кода Rust в соответствии с руководствами по стилю.
RustViz — RustViz — это инструмент, который генерирует визуализации из простых программ на Rust, чтобы помочь пользователям лучше понять механизм времени жизни (Lifetime) и заимствования (Borrowing) в Rust. Он генерирует SVG-файлы с графическими индикаторами, которые интегрируются с mdbook для отображения визуализаций потоков данных в программах на Rust.
TangleGuard ©️ — Помогает понимать и поддерживать масштабируемую архитектуру программного обеспечения. Для этого он генерирует интерактивный вложенный граф зависимостей из исходного кода. Вы можете выбрать уровень детализации и получить ту часть вашей кодовой базы, которая важна для вас.
warnalyzer ⚠️ — Показывает неиспользуемый код из многокрейтовых проектов Rust
Bytebase — Платформа Database DevSecOps со встроенным движком SQL Review, который линтит миграции схем и запросы по более чем 100 настраиваемым правилам — соглашениям об именовании, антипаттернам и проверкам безопасности — для MySQL, PostgreSQL, Oracle, SQL Server, Snowflake и других.
dbcritic — dbcritic находит проблемы в схеме базы данных, такие как отсутствие ограничения первичного ключа в таблице.
holistic — Более 1 300 правил для анализа SQL-запросов. Принимает определение схемы SQL и исходный код запроса для генерации рекомендаций по улучшению. Обнаруживает «запахи» кода, неиспользуемые индексы, неиспользуемые таблицы, представления, материализованные представления и многое другое.- pgspot — Поиск уязвимостей в скриптах расширений postgres. Находит небезопасное использование search_path и небезопасное создание объектов в скриптах расширений PostgreSQL или любом другом SQL-коде PostgreSQL.