Um compilador que lê aplicações Rails em Ruby e gera projetos independentes em outras linguagens, como Rust, Go, TypeScript, Elixir ou um binário nativo Spinel.
rigortype/rigor
Analisador estático para Ruby que infere tipos sem anotações e busca reportar apenas bugs conclusivos, como métodos indefinidos e receptores nil.
- Estrelas
- 107
- Forks
- 2
- Issues abertas
- 538
- Último commit
- há 12 horas
O que é?
Rigor é uma ferramenta de análise estática para Ruby que encontra bugs como chamadas a métodos indefinidos, número incorreto de argumentos, receptores que podem ser nil em um caminho executável, branches inalcançáveis e condições sempre truthy. Ela analisa o código com Prism e executa um mecanismo de inferência sensível ao fluxo que acompanha os valores produzidos pelas expressões, não apenas suas classes. As mensagens incluem o valor calculado; por exemplo, reportam um método indefinido no objeto string "hello-world", em vez de em String.
Não são necessárias anotações nem dependências em runtime para começar. Assinaturas RBS existentes em sig/ são lidas como fonte de tipos, e rigor sig-gen pode gerar RBS a partir dos resultados da inferência. O projeto adota uma política de zero falsos positivos: os diagnósticos só são emitidos quando o tipo do receptor é conhecido estaticamente e as evidências são conclusivas. Há plugins para Rails, RSpec, Sidekiq, Sinatra, dry-rb e outras gems, e rigor-sorbet importa assinaturas Sorbet.
A ferramenta é instalada globalmente como a gem rigortype e oferece comandos para verificar o código, anotar tipos inline, fazer triagem de diagnósticos e gerar assinaturas. Os formatos de saída para CI incluem GitHub annotations, GitLab Code Quality, SARIF, JUnit e outros.
Recursos principais
- 01Infere tipos no nível dos valores a partir de código Ruby sem anotações, usando análise sensível ao fluxo.
- 02Reporta métodos indefinidos, número incorreto de argumentos e receptores que podem ser nil.
- 03Lê assinaturas RBS existentes e pode gerar RBS a partir dos resultados da inferência.
- 04Oferece plugins para Rails, RSpec, Sidekiq, Sinatra e outras gems comuns.
- 05Gera formatos de saída nativos de CI, como GitHub annotations e SARIF.
Casos de uso
- Encontrar erros de digitação e chamadas a métodos indefinidos em uma base de código Ruby existente, sem adicionar anotações de tipos.
- Adicionar uma etapa de verificação estática ao CI e reduzir gradualmente o baseline de problemas.
- Gerar assinaturas RBS para código sem tipos usando os tipos inferidos.
- Executar verificações de tipos em uma aplicação Rails com plugins cientes do framework.
Início rápido
- 1
Instale o Rigor globalmente no Ruby 4.0 com mise
mise use -g ruby@4.0 gem:rigortype - 2
Execute o Rigor no seu código para encontrar bugs
rigor check app lib
Antes de usar
- Versão em fase inicial de avaliação (0.4.x); o escopo de compatibilidade ainda pode mudar antes da v1.0.0.
- Mantido por uma única pessoa com financiamento limitado, então o ritmo de desenvolvimento pode variar.
- Analisador exclusivo para Ruby; não verifica outras linguagens.
Em coleções
Tópicos
Perguntas frequentes
- O que é rigor?
- Analisador estático para Ruby que infere tipos sem anotações e busca reportar apenas bugs conclusivos, como métodos indefinidos e receptores nil. Rigor é uma ferramenta de análise estática para Ruby que encontra bugs como chamadas a métodos indefinidos, número incorreto de argumentos, receptores que podem ser nil em um caminho executável, branches inalcançáveis e condições sempre truthy. Ela analisa o código com Prism e executa um mecanismo de inferência sensível ao fluxo que acompanha os valores produzidos pelas expressões, não apenas suas classes. As mensagens incluem o valor calculado; por exemplo, reportam um método indefinido no objeto string "hello-world", em vez de em String.
- rigor é gratuito? Qual é a licença?
- rigor é open source sob a licença MPL-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- rigor ainda é mantido?
- Manutenção ativa. O último commit de rigor foi em 7 de nov. de 2026.
- Para que posso usar rigor?
- Encontrar erros de digitação e chamadas a métodos indefinidos em uma base de código Ruby existente, sem adicionar anotações de tipos. Adicionar uma etapa de verificação estática ao CI e reduzir gradualmente o baseline de problemas. Gerar assinaturas RBS para código sem tipos usando os tipos inferidos. Executar verificações de tipos em uma aplicação Rails com plugins cientes do framework.
- Como instalar rigor?
- Instale o Rigor globalmente no Ruby 4.0 com mise: mise use -g ruby@4.0 gem:rigortype Execute o Rigor no seu código para encontrar bugs: rigor check app lib
- Onde consigo rigor?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/rigortype/rigor
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca de análise estática para Python que oferece autocompletar, ir para definição, refatoração e busca de código, usada principalmente por plugins de editores.
Verificador estático de tipos para Python, baseado em padrões e voltado a grandes bases de código, com ferramenta de linha de comando e extensão para Visual Studio Code.
Ferramenta de análise estática para PHP que encontra bugs no código sem executá-lo.
Um plugin do pytest que executa o verificador estático de tipos mypy nos arquivos-fonte durante as execuções de testes.
Analisador estático de código e formatador para Ruby que aplica as regras do Ruby Style Guide da comunidade e corrige automaticamente muitas infrações.