Un compilador de SQL que lee tus consultas y genera código con tipos seguros para Go, Kotlin, Python y TypeScript.
colinhacks/reylo
Importa archivos .sql en TypeScript con inferencia completa de tipos, validados contra tu base de datos de desarrollo y sin generar código.
- Estrellas
- 1,511
- Forks
- 18
- Issues abiertos
- 10
- Último commit
- hace 19 horas
¿Qué es?
Reylo permite importar una consulta SQL desde un archivo .sql a TypeScript y llamarla como si fuera una función. Los tipos de las filas del resultado y de los parámetros se derivan del propio SQL al preparar la consulta contra tu base de datos de desarrollo, así que no necesitas definir tipos de fila manualmente ni mantener archivos generados sincronizados.
Como el comprobador de tipos consulta directamente a Reylo, una columna mal escrita, un parámetro incorrecto o una tabla eliminada aparecen como errores de tipo en tsc y en el editor. Reylo infiere la nulabilidad, si una consulta devuelve una fila, cero o una fila, o varias, y las uniones derivadas de enums o restricciones check. Es compatible con Postgres, MySQL y SQLite, y funciona con drivers como pg, postgres.js, mysql2, better-sqlite3 y Bun.sql. Se basa en los content mappers de TypeScript 7.1, que actualmente están en beta.
Funciones clave
- 01Importa archivos .sql como funciones de consulta tipadas que se pueden invocar.
- 02Deriva los tipos de filas y parámetros del SQL, usando una base de datos de desarrollo.
- 03Muestra los errores de SQL como errores de TypeScript en tsc y en el editor.
- 04Infiere la nulabilidad, la cardinalidad y las uniones de enums.
- 05Funciona con Postgres, MySQL y SQLite, y permite elegir el driver.
Casos de uso
- Mantener los tipos de fila de TypeScript sincronizados con un esquema de base de datos que cambia.
- Escribir SQL optimizado manualmente sin renunciar a la seguridad de tipos ni usar un ORM.
- Permitir que agentes de programación modifiquen consultas y que el comprobador de tipos detecte usos desactualizados.
Inicio rápido
- 1
Instala Reylo
npm install reylo - 2
Instala el motor de tu base de datos (Postgres, MySQL o SQLite)
npm install -D @reylosql/postgres - 3
Configura DATABASE_URL en .env para que apunte a tu base de datos de desarrollo
- 4
Ejecuta el código con Reylo cargado en Node
node --env-file=.env --import reylo/register main.ts
Antes de usarlo
- Requiere TypeScript 7.1, que actualmente está en fase beta.
- Requiere Node 24 o posterior y una base de datos de desarrollo en ejecución.
- La comprobación de tipos necesita la opción --runExternalCode para que tsc pueda ejecutar los mapeadores de contenido.
Destacado en Repolode Weekly
- Número 2 · Un navegador headless en Rust para agentes y SQL tipado en TypeScript
Importas archivos .sql en TypeScript y obtienes funciones de consulta tipadas. Los tipos de filas y parámetros se deducen contra tu base de datos de desarrollo, los errores de SQL salen como errores de tsc y no hay paso de generación de código.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es reylo?
- Importa archivos .sql en TypeScript con inferencia completa de tipos, validados contra tu base de datos de desarrollo y sin generar código. Reylo permite importar una consulta SQL desde un archivo .sql a TypeScript y llamarla como si fuera una función. Los tipos de las filas del resultado y de los parámetros se derivan del propio SQL al preparar la consulta contra tu base de datos de desarrollo, así que no necesitas definir tipos de fila manualmente ni mantener archivos generados sincronizados.
- ¿reylo es gratuito? ¿Qué licencia tiene?
- reylo es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿reylo sigue mantenido?
- Mantenimiento activo. El último commit de reylo fue el 5 nov 2026.
- ¿Para qué puedo usar reylo?
- Mantener los tipos de fila de TypeScript sincronizados con un esquema de base de datos que cambia. Escribir SQL optimizado manualmente sin renunciar a la seguridad de tipos ni usar un ORM. Permitir que agentes de programación modifiquen consultas y que el comprobador de tipos detecte usos desactualizados.
- ¿Cómo se instala reylo?
- Instala Reylo: npm install reylo Instala el motor de tu base de datos (Postgres, MySQL o SQLite): npm install -D @reylosql/postgres Configura DATABASE_URL en .env para que apunte a tu base de datos de desarrollo Ejecuta el código con Reylo cargado en Node: node --env-file=.env --import reylo/register main.ts
- ¿Dónde consigo reylo?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/colinhacks/reylo
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un ORM headless y ligero para TypeScript compatible con PostgreSQL, MySQL y SQLite, que funciona en Node.js, Bun, Deno y entornos edge.
Un ORM basado en promesas para Node.js y TypeScript, compatible con PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle y Db2.
Editor SQL y gestor de bases de datos multiplataforma para Linux, macOS y Windows, compatible con MySQL, PostgreSQL, SQLite, SQL Server y muchos más.
Un generador de consultas SQL para TypeScript con seguridad de tipos, que autocompleta tablas, columnas y tipos de resultados en distintas bases de datos SQL.
Kit de herramientas SQL asíncrono y escrito en Rust puro, con consultas SQL normales verificadas en tiempo de compilación y soporte para PostgreSQL, MySQL/MariaDB y SQLite.