Um compilador SQL que lê suas consultas e gera código type-safe em Go, Kotlin, Python e TypeScript.
colinhacks/reylo
Importe arquivos .sql no TypeScript com inferência completa de tipos, validação no banco de desenvolvimento e sem etapa de geração de código.
- Estrelas
- 1,511
- Forks
- 18
- Issues abertas
- 10
- Último commit
- há 18 horas
O que é?
Reylo permite importar uma query SQL de um arquivo .sql para o TypeScript e chamá-la como uma função. Os tipos das linhas retornadas e dos parâmetros são derivados do próprio SQL, preparando a query no banco de desenvolvimento. Assim, não há tipos de linha escritos manualmente nem arquivos gerados para manter sincronizados.
Como o verificador de tipos consulta o Reylo diretamente, uma coluna com nome incorreto, um parâmetro errado ou uma tabela removida aparece como erro de tipo no tsc e no editor. Reylo infere a nulabilidade, se a query retorna uma linha, zero ou uma linha, ou várias, além de unions derivadas de enums ou restrições check. É compatível com Postgres, MySQL e SQLite, e funciona com drivers como pg, postgres.js, mysql2, better-sqlite3 e Bun.sql. Ele depende dos content mappers do TypeScript 7.1, que estão atualmente em beta.
Recursos principais
- 01Importa arquivos .sql como funções de query tipadas e chamáveis.
- 02Deriva os tipos das linhas e dos parâmetros a partir do SQL, consultando um banco de desenvolvimento.
- 03Aponta erros no SQL como erros do TypeScript no tsc e no editor.
- 04Infere nulabilidade, cardinalidade e unions de enums.
- 05Funciona com Postgres, MySQL e SQLite e permite usar o driver de sua preferência.
Casos de uso
- Manter os tipos de linha do TypeScript sincronizados com um esquema de banco de dados em constante mudança.
- Escrever SQL ajustado manualmente mantendo a segurança de tipos, sem ORM.
- Permitir que agentes de programação alterem queries, com o verificador de tipos detectando chamadas desatualizadas.
Início rápido
- 1
Instale o Reylo
npm install reylo - 2
Instale o mecanismo do seu banco de dados (Postgres, MySQL ou SQLite)
npm install -D @reylosql/postgres - 3
Configure DATABASE_URL em .env para apontar para seu banco de dados de desenvolvimento
- 4
Execute seu código com o Reylo carregado no Node
node --env-file=.env --import reylo/register main.ts
Antes de usar
- Requer TypeScript 7.1, que está atualmente em beta.
- Requer Node 24 ou posterior e um banco de dados de desenvolvimento em execução.
- A verificação de tipos precisa da flag --runExternalCode para que o tsc possa executar os mapeadores de conteúdo.
Destaque no Repolode Weekly
- Edição 2 · Um navegador headless em Rust para agentes e SQL tipado no TypeScript
Você importa arquivos .sql no TypeScript e recebe funções de consulta tipadas. Os tipos de linhas e parâmetros vêm do banco de desenvolvimento, erros de SQL aparecem como erros do tsc e não há etapa de geração de código.
Em coleções
Tópicos
Perguntas frequentes
- O que é reylo?
- Importe arquivos .sql no TypeScript com inferência completa de tipos, validação no banco de desenvolvimento e sem etapa de geração de código. Reylo permite importar uma query SQL de um arquivo .sql para o TypeScript e chamá-la como uma função. Os tipos das linhas retornadas e dos parâmetros são derivados do próprio SQL, preparando a query no banco de desenvolvimento. Assim, não há tipos de linha escritos manualmente nem arquivos gerados para manter sincronizados.
- reylo é gratuito? Qual é a licença?
- reylo é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- reylo ainda é mantido?
- Manutenção ativa. O último commit de reylo foi em 5 de nov. de 2026.
- Para que posso usar reylo?
- Manter os tipos de linha do TypeScript sincronizados com um esquema de banco de dados em constante mudança. Escrever SQL ajustado manualmente mantendo a segurança de tipos, sem ORM. Permitir que agentes de programação alterem queries, com o verificador de tipos detectando chamadas desatualizadas.
- Como instalar reylo?
- Instale o Reylo: npm install reylo Instale o mecanismo do seu banco de dados (Postgres, MySQL ou SQLite): npm install -D @reylosql/postgres Configure DATABASE_URL em .env para apontar para seu banco de dados de desenvolvimento Execute seu código com o Reylo carregado no Node: node --env-file=.env --import reylo/register main.ts
- Onde consigo reylo?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/colinhacks/reylo
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
ORM headless e leve para TypeScript, compatível com PostgreSQL, MySQL e SQLite em Node.js, Bun, Deno e runtimes edge.
ORM baseado em promises para Node.js e TypeScript, compatível com PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle e Db2.
Editor SQL e gerenciador de bancos de dados multiplataforma para Linux, macOS e Windows, com suporte a MySQL, PostgreSQL, SQLite, SQL Server e muitos outros.
Um construtor de consultas SQL para TypeScript com segurança de tipos e autocomplete para tabelas, colunas e tipos de resultado em vários bancos de dados SQL.
Toolkit SQL assíncrono e escrito inteiramente em Rust, com consultas SQL comuns verificadas em tempo de compilação e suporte a PostgreSQL, MySQL/MariaDB e SQLite.