2025年4月30日

新しい「Rustフリー」版Prisma ORMをお試しください (早期アクセス)

より速く、より柔軟に、より良いDXへ:RustからTypeScriptへの移行がこれを実現します!しかしそれだけではありません。これは単なる言語の書き換えではなく、Prisma ORMアーキテクチャの根本的な改善です。そして今すぐお試しいただけます

Try the New "Rust-free" Version of Prisma ORM (Early Access)

Prisma ORMの簡単な歴史

PrismaアーキテクチャとRustベースのクエリエンジンの起源を理解するために、簡単に振り返ってみましょう。

GraphQLからデータベースへ

Prismaコミュニティに新しく参加された方は驚かれるかもしれませんが、Prisma ORMはGraphcoolというGraphQL Backend-as-a-Serviceから生まれました。抽象化レイヤーを剥がし、APIレイヤーからデータベースへと移行するいくつかのイテレーションを経て、2020年にPrisma ORMをリリースしました。

そもそもなぜRustクエリエンジンだったのか?

2020年にPrisma ORMが構想された際、私たちは様々な言語に対応するPrisma ORMを構築するという野心を持っていました。そのため、その取り組みをサポートするアーキテクチャを選択し、Prisma ORMのクエリレイヤーを2つの部分に分割しました。

  • クエリエンジン:SQLクエリの生成とDB接続の管理という重い処理を担当します。
  • 軽量な言語固有クライアント:開発者が簡単にDBにクエリを送信できるようにします。

より速く、より柔軟に、より良いDX

5年後、開発者エコシステムは大きく変化しました。TypeScriptはWebの主要言語となり、開発者はサーバーレスデプロイメントに傾倒しています。また、Rustエンジンを採用した私たちのアプローチが引き起こした問題点についても貴重な洞察を得ました。特に、現代のランタイムとの互換性の問題、デプロイメントの複雑さ(例:エンジンのバイナリサイズや特定のターゲット向けにコンパイルする必要があること)、言語境界間の追加のシリアライズステップによるパフォーマンスオーバーヘッドなどが挙げられます。

これらの知識をすべて活かし、私たちはRustをアーキテクチャから取り除き、より高速で柔軟性があり、全体的に優れた開発者エクスペリエンスを提供するPrisma ORMのバージョンを作成する旅に乗り出しました!移行プロセスについてさらに詳しく知りたい場合は、このトピックに関する以前の2つの記事をご覧ください。

Prisma ORM v6.7.0:Rustエンジンなしの新しいアーキテクチャ (早期アクセス)

以前のアップデートに続き、今週のv6.7.0リリースで、新しいRustフリーアーキテクチャをPostgreSQLとSQLite向けに早期アクセスで公開できることを大変嬉しく思います。ぜひお試しいただき、ご意見をお聞かせください!

ネイティブJavaScriptドライバーパッケージとの使用

以前のRustベースのクエリエンジンは、組み込みのデータベースドライバー(こちらもRustで書かれていました)を介してデータベース接続を管理する役割を担っていました。そのため、他のORMとは異なり、Prisma ORMでは追加のパッケージ(pgbetter-sqlite3など)をインストールする必要がありませんでした。

Rustから離れることで、Prisma ORMは組み込みドライバーを持たなくなり、今後はネイティブJSドライバーを使用する必要があります。これは、v5.4.0以降Prisma ORMの一部であり、driverAdaptersプレビュー機能フラグを介して利用可能なドライバーアダプターを介して機能します。

新しいPrisma ORMアーキテクチャの開始方法

新しいRustフリー版のPrisma ORMを開始するには、prisma@prisma/clientのバージョンを6.7.0に更新し、Prisma ClientジェネレーターでqueryCompilerdriverAdaptersの機能フラグを設定する必要があります。

次に、以下のコマンドを実行してPrisma Clientを再生成する必要があります。

PostgreSQLまたはSQLiteを使用しているかどうかに応じて、pgまたはbetter-sqlite3用のドライバーアダプターをインストールする必要があります。

インストール後、PrismaClientインスタンスを次のようにインスタンス化できます。

この時点で、PrismaClientインスタンスは通常通り使用できます。データベースとのやり取り方法に他の変更はありません。この切り替えは、Prisma ORMをモノリポ、BunやDenoのような新しいランタイムで使用している場合、またはアプリケーションをサーバーレスやエッジ環境にデプロイする場合に特に役立ちます。

RustエンジンなしのPrisma ORMのパフォーマンス向上

新しいアーキテクチャは、より柔軟で使いやすいDXを提供するだけでなく、クエリパフォーマンスにおいてもはるかに優れた数値を示しています。これはRust自体が遅いからではなく(むしろその逆です)、クエリとデータが言語境界を越える際に一部のクエリで顕著なシリアライゼーションオーバーヘッドが発生していたためです。このオーバーヘッドが新しいアーキテクチャによって削減され、クエリ実行がより効率的かつ高速になります。

私たちは旧アーキテクチャと新アーキテクチャのパフォーマンス比較を開始し、ほとんどすべてのクエリが著しく高速になり、時には2倍以上速くなることさえ発見しました

詳細については、これらの測定値を詳しく紹介した最近の記事をご覧ください。

Prisma ORMの次なる展開は?

Prisma ORMは現在、大きな変更を受けています。数ヶ月前には、OSSガバナンスプロセスの変更に関する詳細をすべて含むORMマニフェストを発表しました。それ以来、新しいprisma-clientジェネレーターTypeScriptベースの設定ファイルprisma.config.tsという名称)、node_modulesへのPrisma Clientの生成といった「魔法の挙動」の削除など、Prisma ORMをよりシンプルに、より堅牢に、より柔軟にするための機能開発に懸命に取り組んできました。次なる展開については、弊社のロードマップをご覧ください!

RustなしのPrisma ORMを試す

要約すると、Rustなしの新しいPrisma ORMアーキテクチャは

  • 余分なバイナリの必要性を排除することで、Prisma ORMをより軽量にします。
  • 言語境界を越えるシリアライゼーションのオーバーヘッドを削減することで、Prisma ORMを高速化します。
  • デプロイがよりシンプルになるため(「バイナリターゲット」は不要)、より良いDXを提供します。

ぜひお試しいただき、XDiscordでご意見をお聞かせください!


RustエンジンなしのPrisma ORMを試す

次の投稿をお見逃しなく!

Prismaニュースレターに登録する

© . All rights reserved.