SQLクエリを読み取り、型安全なGo、Kotlin、Python、TypeScriptのコードを生成するSQLコンパイラです。
colinhacks/reylo
コード生成なしで、.sqlファイルをTypeScriptにインポート。開発用DBで検証し、型を完全に推論します。
- スター
- 1,536
- フォーク
- 17
- 未解決の Issue
- 20
- 最終コミット
- 3 時間前
これは何?
Reyloを使うと、.sqlファイル内のSQLクエリをTypeScriptにインポートし、関数のように呼び出せます。クエリを開発用DBでprepareすることで、結果行とパラメーターの型をSQL自体から導出するため、行の型を手書きしたり、同期を保つために生成ファイルを管理したりする必要はありません。
型チェッカーはReyloに直接クエリするため、列名の誤記、誤ったパラメーター、テーブルの削除は、tscやエディター上で型エラーとして検出されます。ReyloはNULL許容性、クエリが1行、0行または1行、複数行のどれを返すか、さらにenumやcheck制約に基づくunion型を推論します。Postgres、MySQL、SQLiteに対応し、pg、postgres.js、mysql2、better-sqlite3、Bun.sqlなどのドライバーで動作します。現在ベータ版のTypeScript 7.1 content mappersを利用しています。
主な機能
- 01.sqlファイルを、型付きの呼び出し可能なクエリ関数としてインポートします。
- 02開発用DBでSQLを検証し、行とパラメーターの型を導出します。
- 03SQLの誤りをtscやエディター上でTypeScriptエラーとして報告します。
- 04NULL許容性、行数、enumのunion型を推論します。
- 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インポート
.sqlファイルをTypeScriptでimportすると、型付きのクエリ関数になります。行とパラメータの型は開発用DBに照らして推論され、SQLの誤りはtscのエラーとして出ます。コード生成は不要です。
収録されている特集
トピック
よくある質問
- reylo とは?
- コード生成なしで、.sqlファイルをTypeScriptにインポート。開発用DBで検証し、型を完全に推論します。 Reyloを使うと、.sqlファイル内のSQLクエリをTypeScriptにインポートし、関数のように呼び出せます。クエリを開発用DBでprepareすることで、結果行とパラメーターの型をSQL自体から導出するため、行の型を手書きしたり、同期を保つために生成ファイルを管理したりする必要はありません。
- reylo は無料で使えますか?ライセンスは?
- reylo は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- reylo は今もメンテナンスされていますか?
- 活発にメンテナンス中。reylo の最終コミットは 2026年11月7日 です。
- 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に対応する、Node.js・TypeScript向けのPromiseベースORM。
Linux、macOS、Windows対応のクロスプラットフォームSQLエディター兼データベース管理ツール
SQLデータベースのテーブル、カラム、クエリ結果を補完する、型安全なTypeScript用SQLクエリビルダー。
通常のSQLを使い、コンパイル時にクエリを検証できる非同期の純Rust製SQLツールキット。PostgreSQL、MySQL/MariaDB、SQLiteに対応。