Компилятор анализирует Rails-приложения на Ruby и создаёт автономные проекты на Rust, Go, TypeScript, Elixir и других языках либо нативный бинарный файл Spinel.
rigortype/rigor
Статический анализатор Ruby, который выводит типы из кода без аннотаций и стремится сообщать только о достоверно выявленных ошибках, например неопределённых методах и вызовах на nil.
- Звёзды
- 107
- Форки
- 1
- Открытые issues
- 538
- Последний коммит
- 11 часов назад
Что это?
Rigor — инструмент статического анализа Ruby, который находит такие ошибки, как вызовы неопределённых методов, неверное число аргументов, получатели, которые могут оказаться nil на выполняемом пути, недостижимые ветви и условия, всегда истинные. Он разбирает код с помощью Prism и использует чувствительный к потоку выполнения механизм вывода типов, отслеживающий значения выражений, а не только их классы. В сообщениях указывается вычисленное значение: например, вместо String инструмент сообщит о вызове неопределённого метода у строки "hello-world".
Для начала работы не нужны аннотации и зависимости времени выполнения. Существующие сигнатуры RBS в sig/ используются как источник типов, а команда rigor sig-gen может генерировать RBS по результатам вывода типов. В проекте действует политика нулевого числа ложных срабатываний: диагностика появляется, только если тип получателя статически известен и доказательства однозначны. Доступны плагины для Rails, RSpec, Sidekiq, Sinatra, dry-rb и других гемов, а rigor-sorbet загружает сигнатуры Sorbet.
Инструмент устанавливается глобально как гем rigortype и предоставляет команды для проверки кода, добавления аннотаций типов прямо в код, разбора диагностик и генерации сигнатур. Среди форматов вывода для CI — GitHub annotations, GitLab Code Quality, SARIF, JUnit и другие.
Ключевые возможности
- 01Выводит типы значений из кода Ruby без аннотаций с помощью анализа, чувствительного к потоку выполнения.
- 02Находит неопределённые методы, неверное число аргументов и получателей, которые могут оказаться nil.
- 03Читает существующие сигнатуры RBS и может генерировать RBS по результатам вывода типов.
- 04Предоставляет плагины для Rails, RSpec, Sidekiq, Sinatra и других распространённых гемов.
- 05Поддерживает форматы вывода для CI, например GitHub annotations и SARIF.
Сценарии использования
- Поиск опечаток и вызовов неопределённых методов в существующей кодовой базе Ruby без добавления аннотаций типов.
- Добавление проверки в CI с базовым набором диагностик, который можно постепенно сокращать.
- Генерация сигнатур RBS для кода без типов на основе выведенных типов.
- Проверка типов в приложении Rails с помощью плагинов, учитывающих особенности фреймворка.
Быстрый старт
- 1
Установите Rigor глобально для Ruby 4.0 с помощью mise
mise use -g ruby@4.0 gem:rigortype - 2
Запустите Rigor для проверки кода и поиска ошибок
rigor check app lib
Что важно знать
- Релиз на раннем этапе оценки (0.4.x); область совместимости может измениться до выхода v1.0.0.
- Проект поддерживает один человек при ограниченном финансировании, поэтому темпы разработки могут меняться.
- Анализатор только для Ruby; другие языки он не проверяет.
В подборках
Темы
Частые вопросы
- Что такое rigor?
- Статический анализатор Ruby, который выводит типы из кода без аннотаций и стремится сообщать только о достоверно выявленных ошибках, например неопределённых методах и вызовах на nil. Rigor — инструмент статического анализа Ruby, который находит такие ошибки, как вызовы неопределённых методов, неверное число аргументов, получатели, которые могут оказаться nil на выполняемом пути, недостижимые ветви и условия, всегда истинные. Он разбирает код с помощью Prism и использует чувствительный к потоку выполнения механизм вывода типов, отслеживающий значения выражений, а не только их классы. В сообщениях указывается вычисленное значение: например, вместо String инструмент сообщит о вызове неопределённого метода у строки "hello-world".
- rigor можно использовать бесплатно? Какая у него лицензия?
- rigor распространяется с открытым исходным кодом под лицензией MPL-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- rigor всё ещё поддерживается?
- Активно поддерживается. Последний коммит в rigor — 6 нояб. 2026 г..
- Для чего можно использовать rigor?
- Поиск опечаток и вызовов неопределённых методов в существующей кодовой базе Ruby без добавления аннотаций типов. Добавление проверки в CI с базовым набором диагностик, который можно постепенно сокращать. Генерация сигнатур RBS для кода без типов на основе выведенных типов. Проверка типов в приложении Rails с помощью плагинов, учитывающих особенности фреймворка.
- Как установить rigor?
- Установите Rigor глобально для Ruby 4.0 с помощью mise: mise use -g ruby@4.0 gem:rigortype Запустите Rigor для проверки кода и поиска ошибок: rigor check app lib
- Где скачать rigor?
- Исходный код и инструкции по установке — на GitHub: https://github.com/rigortype/rigor
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека статического анализа Python для автодополнения, перехода к определению, рефакторинга и поиска по коду; используется преимущественно в плагинах для редакторов.
Статический анализатор типов Python по стандартам языка, доступный как CLI-инструмент и расширение для Visual Studio Code; подходит для крупных кодовых баз.
Инструмент статического анализа PHP, который находит ошибки в коде, не запуская его.
Плагин для pytest, который запускает статический анализатор типов mypy для исходных файлов во время тестов.
Статический анализатор и форматтер кода Ruby, который проверяет соответствие Ruby Style Guide и автоматически исправляет многие нарушения.