jaqt - JavaScriptのクエリと変換
(github.com/muze-nl)- GraphQL と SQL に着想を得た、Array と Object 向けのクエリエンジン
- GraphQL スタイルの
Array.select()とArray.where()機能を JavaScript に導入して使えるようにするライブラリ
from(data)
.where({
friends: 'John'
})
.select({
name: o => o.name+' '+o.lastName
})
4件のコメント
上のコードを見ると、Drizzle ORMを思い出しますね。
最近Drizzle ORMを知ったのですが、既存のJSエコシステムのORMであるknexやtypeormのような、クエリビルダー志向のORMなのでしょうか?
Drizzleは既存のORMとは少し異なるアプローチを取っています。TypeScriptに最適化された「薄いSQLレイヤー」と捉えるとよさそうです。
Knexと比較すると、文法やスキーマ定義の方式は似ているように見えますが、TypeScriptサポートの面で大きな違いがあります。Drizzleは型安全性により大きな重点を置いています。Knexはスキーマと型定義を別々に行う必要がある一方、Drizzleは一度の定義でスキーマと型の両方が生成されるため、より便利でエラーも起きにくいです。
TypeORMと比べると、TypeORMはより重く、従来型のORMに近いです。Drizzleはより軽量で高性能なので、特にサーバーレス環境で強みがあります。実際のベンチマークを見ると、DrizzleはTypeORMやPrismaより数倍高速だそうです。
さらに興味深い点として、Drizzleはマイグレーション管理もよくサポートしていることが挙げられます。CLIツールのDrizzle Kitでマイグレーションファイルを自動生成でき、開発段階では
pushコマンドで簡単にスキーマ変更を適用できます。結論として、DrizzleはTypeScriptフレンドリーでありながら軽量かつ高性能な、モダンなクエリビルダーだと言えそうです。特に型安全性と性能を重視する方におすすめです。
Perplexityに聞いた結果です