September 10, 2025

Rust-free Prisma ORM is Ready for Production

The future of Prisma ORM is here: The Rust-free version of Prisma ORM and the ESM-first prisma-client generator are both Generally Available in v6.16.0. Check out the article to learn everything about the latest release and some more Prisma Postgres updates.

Visual for 6.16.0

The future of Prisma ORM: No Rust & ESM-first

Eight months ago, we published our ORM Manifesto with the first hint that we're going to remove the Rust-based query engine from Prisma ORM:

We're addressing this by migrating Prisma's core logic from Rust to TypeScript and redesigning the ORM to make customization and extension easier.

Benefits of removing Rust from Prisma ORM

After a lot of hard work and feedback from our community, we're incredibly excited to share that the migration has been completed and you can now use Prisma ORM without its Rust engine in your production apps. 🎉 This is a major milestone for Prisma ORM and comes with a lot of benefits:

  • Reduced bundle size by ~90%
  • Faster queries (check out our latest benchmarks)
  • Lower CPU footprint
  • Less deployment complexity
  • Easier to make open-source contributions

A new ESM-first prisma-client generator

Additionally, the new, flexible and ESM-first prisma-client generator is ready for production too. Here's a quick overview of its main benefits:

  • No more magic generation into node_modules; generated code is fully under control by the developer
  • ESM-compatible by default
  • Flexible configuration for specific runtimes (Node.js, Deno, Bun, Cloudflare, …)

Together, they're the future of Prisma ORM and will become the default way to use it in the upcoming major version v7.

Getting started with the Rust-free & ESM-first Prisma ORM

First, in your Prisma schema configure the new "prisma-client" generator as your provider and set engineType to "client":

Note: If you tried the Rust-free ORM before, you can now also drop the queryCompiler and driverAdapter feature flags from the previewFeatures array. And if you used binaryTargets, you can also get rid of these.

The Rust engine previously bundled the database drivers that were required for the interaction with the database. Now that the Rust engine has been removed, you need to manually install Prisma ORM's driver adapter for the database that you're using, e.g. to use pg for PostgreSQL you need to use the @prisma/adapter-pg package:

Finally, you can instantiate PrismaClient using the PrismaPg driver adapter as follows:

Note: To learn more and see instructions for all other supported databases, check out the documentation.

You can also give this a quick shot and try it yourself by creating a database with our new create-db command and connecting to it with the new Prisma ORM version:

Then use the connection string starting with postgresql:// from the output of the command when connecting to it..

Note: The Rust-free Prisma ORM version is also compatible with Prisma Postgres and Accelerate 🎉

We also have several ready-to-run examples with major web frameworks for you to try out the new version of Prisma ORM:

Prisma ORM beats Drizzle in type checking performance

Runtime performance is not the only performance category that matters. In fact, when it comes to DX, which is close to our heart at Prisma, type checking performance is equally important: if your TypeScript types become too complex and the compiler needs to do too much work (e.g. inferring types), it may slow down your editor, lead to laggy auto-completion or prevent jump-to-definition from working.

We've worked with TypeScript expert David Blass to find ways for improving the type checking performance in Prisma ORM and created benchmarks comparing the type checking performance with Drizzle.

Here's a TLDR of the results when measuring the time it took for the TypeScript compiler to check types with Prisma and Drizzle:

Schema

Prisma ORMDrizzle ORMDifference (ms)Difference (%)205ms601ms+396ms+193%

Queries

Prisma ORMDrizzle ORMDifference (ms)Difference (%)335ms697ms362ms+108%

We also measured against Drizzle's recent beta release with improved type-checking performance which significantly reduces schema instantiations to ~5k (+1072% vs Prisma ORM). For queries, Drizzle's RQB now averages 32% fewer instantiations than Prisma, but check times remain ~1.5× slower.

You can read about the details of our benchmarking setup and the results here: Why Prisma ORM Checks Types Faster Than Drizzle.

Manage OAuth apps directly in Prisma Console

You can now manage OAuth applications directly in Prisma Console:

This means, you can start provisioning Prisma Postgres databases to your users without waiting for OAuth app credentials from us. With this flow, if your users want to keep a database, they can claim it and transfer it into their own Prisma workspace.

If you're creating OAuth apps to offer Prisma Postgres to your own users, consider becoming an official partner! As a partner, you'll be eligible to dedicated partner plans giving you special pricing offers to support your growth!

Try it out and share your feedback

Our focus on robustness and stability from the last weeks paid off! This week was a huge milestone in the history of Prisma ORM and a big step towards v7. Prisma ORM is finally Rust-free and has become more flexible and predictable with the new prisma-client generator.

Additionally, you can now create OAuth apps yourself, so you can offer Prisma Postgres to your own users. We're excited to see what you're going to build with it!

Let us know your thoughts, questions and feedback on X and join the conversation on Discord.

Don’t miss the next post!

Sign up for the Prisma Newsletter