SQL 쿼리를 읽고 타입 안전한 Go, Kotlin, Python, TypeScript 코드를 생성하는 SQL 컴파일러입니다.
colinhacks/reylo
코드 생성 단계 없이 .sql 파일을 TypeScript로 가져오고, 개발 데이터베이스에서 검증해 완전한 타입 추론을 제공합니다.
- 스타
- 1,526
- 포크
- 18
- 열린 이슈
- 20
- 마지막 커밋
- 23시간 전
어떤 프로젝트인가요?
Reylo를 사용하면 .sql 파일의 SQL 쿼리를 TypeScript로 가져와 함수처럼 호출할 수 있습니다. 개발 데이터베이스에서 쿼리를 준비해 SQL 자체로부터 결과 행과 매개변수의 타입을 도출하므로, 행 타입을 직접 작성하거나 동기화할 생성 파일을 관리할 필요가 없습니다.
타입 검사기가 Reylo에 직접 쿼리하기 때문에 잘못 입력한 컬럼명이나 잘못된 매개변수, 삭제된 테이블을 tsc와 에디터에서 타입 오류로 확인할 수 있습니다. Reylo는 null 허용 여부, 쿼리 결과가 한 행인지, 0개 또는 한 행인지, 여러 행인지, 그리고 enum이나 check 제약 조건에서 비롯된 유니온 타입을 추론합니다. Postgres, MySQL, SQLite를 지원하며 pg, postgres.js, mysql2, better-sqlite3, Bun.sql 등의 드라이버와 함께 사용할 수 있습니다. 현재 베타 버전인 TypeScript 7.1 content mappers를 사용합니다.
핵심 기능
- 01.sql 파일을 타입이 지정된 호출 가능한 쿼리 함수로 가져옵니다.
- 02개발 데이터베이스에서 SQL을 실행해 행과 매개변수의 타입을 도출합니다.
- 03SQL 오류를 tsc와 에디터에서 TypeScript 오류로 표시합니다.
- 04null 허용 여부, 결과 행 수, enum 유니온 타입을 추론합니다.
- 05Postgres, MySQL, SQLite를 지원하며 원하는 드라이버를 사용할 수 있습니다.
활용 사례
- 변경되는 데이터베이스 스키마에 맞춰 TypeScript 행 타입을 동기화할 때.
- ORM 없이 타입 안전성을 유지하면서 세밀하게 직접 작성한 SQL을 사용할 때.
- 코딩 에이전트가 쿼리를 변경할 때 타입 검사기로 오래된 호출부를 찾아내고 싶을 때.
빠른 시작
- 1
Reylo를 설치하세요
npm install reylo - 2
데이터베이스용 엔진(Postgres, MySQL 또는 SQLite)을 설치하세요
npm install -D @reylosql/postgres - 3
개발 데이터베이스를 가리키도록 .env에서 DATABASE_URL을 설정하세요
- 4
Node에서 Reylo를 로드해 코드를 실행하세요
node --env-file=.env --import reylo/register main.ts
사용 전 알아둘 점
- 현재 베타 버전인 TypeScript 7.1이 필요합니다.
- Node 24 이상과 실행 중인 개발 데이터베이스가 필요합니다.
- 타입 검사에는 tsc가 콘텐츠 매퍼를 실행할 수 있도록 --runExternalCode 플래그가 필요합니다.
Repolode 주간에 소개됨
- 제 2호 · 에이전트용 Rust 헤드리스 브라우저와 타입이 붙는 SQL 임포트
TypeScript에서 .sql 파일을 import하면 타입이 붙은 쿼리 함수가 됩니다. 행과 파라미터 타입은 개발 DB 기준으로 추론되고, SQL 오류는 tsc 에러로 표시되며 코드 생성 단계가 없습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- reylo은(는) 무엇인가요?
- 코드 생성 단계 없이 .sql 파일을 TypeScript로 가져오고, 개발 데이터베이스에서 검증해 완전한 타입 추론을 제공합니다. Reylo를 사용하면 .sql 파일의 SQL 쿼리를 TypeScript로 가져와 함수처럼 호출할 수 있습니다. 개발 데이터베이스에서 쿼리를 준비해 SQL 자체로부터 결과 행과 매개변수의 타입을 도출하므로, 행 타입을 직접 작성하거나 동기화할 생성 파일을 관리할 필요가 없습니다.
- reylo은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- reylo은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- reylo은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. reylo의 마지막 커밋은 2026년 11월 6일입니다.
- reylo은(는) 어디에 사용할 수 있나요?
- 변경되는 데이터베이스 스키마에 맞춰 TypeScript 행 타입을 동기화할 때. ORM 없이 타입 안전성을 유지하면서 세밀하게 직접 작성한 SQL을 사용할 때. 코딩 에이전트가 쿼리를 변경할 때 타입 검사기로 오래된 호출부를 찾아내고 싶을 때.
- reylo는 어떻게 설치하나요?
- Reylo를 설치하세요: npm install reylo 데이터베이스용 엔진(Postgres, MySQL 또는 SQLite)을 설치하세요: npm install -D @reylosql/postgres 개발 데이터베이스를 가리키도록 .env에서 DATABASE_URL을 설정하세요 Node에서 Reylo를 로드해 코드를 실행하세요: node --env-file=.env --import reylo/register main.ts
- reylo은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/colinhacks/reylo
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Node.js, Bun, Deno 및 엣지 런타임에서 사용할 수 있는 PostgreSQL, MySQL, SQLite용 경량 헤드리스 TypeScript ORM입니다.
PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle, Db2를 지원하는 promise 기반 Node.js 및 TypeScript ORM입니다.
Linux, macOS, Windows에서 MySQL, PostgreSQL, SQLite, SQL Server 등 다양한 DB를 지원하는 크로스 플랫폼 SQL 편집기 및 데이터베이스 관리자입니다.
SQL 데이터베이스 전반에서 테이블, 컬럼, 결과 타입을 자동 완성하는 타입 안전한 TypeScript SQL 쿼리 빌더입니다.
일반 SQL로 작성한 쿼리를 컴파일 시점에 검사하는 순수 Rust 비동기 SQL 툴킷으로, PostgreSQL, MySQL/MariaDB, SQLite를 지원합니다.