# Rust-free Prisma ORM is Ready for Production URL: https://www.prisma.io/blog/rust-free-prisma-orm-is-ready-for-production Published: 2025-09-10 Authors: Nikolas Burk Tags: orm, announcement Series: Prisma ORM: The Complete Rust-to-TypeScript Migration Journey Description: 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. > Blog posts describe Prisma as it was on the date shown and are not kept current. Before implementing from a post, check the documentation index at https://www.prisma.io/docs/llms.txt and the changelog at https://www.prisma.io/changelog.md. > For an index of every published post, fetch https://www.prisma.io/blog/llms.txt. 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](https://pris.ly/release/6.16.0). Check out the article to learn everything about the latest release and some more Prisma Postgres updates. ## The future of Prisma ORM: No Rust & ESM-first [#the-future-of-prisma-orm-no-rust--esm-first] Eight months ago, we published our [ORM Manifesto](https://www.prisma.io/blog/prisma-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 [#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](https://www.prisma.io/blog/prisma-orm-without-rust-latest-performance-benchmarks)) * Lower CPU footprint * Less deployment complexity * Easier to make open-source contributions ### A new ESM-first `prisma-client` generator [#a-new-esm-first-prisma-client-generator] Additionally, the new, flexible and [ESM](https://nodejs.org/api/esm.html#modules-ecmascript-modules)-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`](https://www.prisma.io/blog/why-prisma-orm-generates-code-into-node-modules-and-why-it-ll-change); 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 [#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"`: ```prisma generator client { provider = "prisma-client" // ESM-first engineType = "client" // No rust engines output = "../src/generated/prisma" } ``` > **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`](https://node-postgres.com/) for PostgreSQL you need to use the `@prisma/adapter-pg` package: ``` npm install @prisma/adapter-pg ``` Finally, you can instantiate `PrismaClient` using the `PrismaPg` driver adapter as follows: ```ts import { PrismaClient } from "./generated/prisma"; import { PrismaPg } from "@prisma/adapter-pg"; const adapter = new PrismaPg({ connectionString: env.DATABASE_URL }); const prisma = new PrismaClient({ adapter }); // ... send queries using `prisma` like before ``` > **Note:** To learn more and see instructions for all other supported databases, check out the [documentation](https://www.prisma.io/docs/orm/v7/prisma-client/setup-and-configuration/database-polyfills). You can also give this a quick shot and try it yourself by creating a database with our new [`create-db`](https://create-db.prisma.io/) command and connecting to it with the new Prisma ORM version: ``` npx create-db ``` 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](https://www.prisma.io/postgres) and [Accelerate](https://www.prisma.io/accelerate) 🎉 We also have several ready-to-run examples with major web frameworks for you to try out the new version of Prisma ORM: * [Next.js 15 (Turbopack, Node.js, ESM)](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nextjs-starter-turbopack) * [Nuxt 4 (Vite, Node.js, ESM)](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/nuxt4-starter-nodejs) * [React Router 7 (Vite, Node.js, ESM)](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/react-router-starter-nodejs) * [Bun HTTP server](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client/bun) * … and [more](https://github.com/prisma/prisma-examples/tree/latest/generator-prisma-client)! ## Prisma ORM beats Drizzle in type checking performance [#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](https://x.com/ssalbdivad) 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 ORM** | **Drizzle ORM** | **Difference (ms)** | **Difference (%)** | | -------------- | --------------- | ------------------- | ------------------ | | 205ms | 601ms | +396ms | **+193%** | **Queries** | **Prisma ORM** | **Drizzle ORM** | **Difference (ms)** | **Difference (%)** | | -------------- | --------------- | ------------------- | ------------------ | | 335ms | 697ms | 362ms | **+108%** | We also measured against Drizzle's [recent beta release with improved type-checking performance](https://x.com/DrizzleORM/status/1961533592208625672) 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**](https://www.prisma.io/blog/why-prisma-orm-checks-types-faster-than-drizzle). ## Manage OAuth apps directly in Prisma Console [#manage-oauth-apps-directly-in-prisma-console] You can now manage OAuth applications directly in [Prisma Console](https://console.prisma.io): ![](https://www.prisma.io/blog/rust-free-prisma-orm-is-ready-for-production/imgs/cba14193002175661ac170da6197c024be53b5ca-2386x1982.png) 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](https://www.prisma.io/docs/rest-api/partner-integration#database-claim-flow) 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](https://www.prisma.io/programs/partners)! 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 [#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! If you're ready to put these changes to work, explore [Prisma ORM](https://www.prisma.io/orm), review the [Prisma Client generation docs](https://www.prisma.io/docs/orm/v7/prisma-client/setup-and-configuration/generating-prisma-client), and try [Prisma Postgres](https://www.prisma.io/postgres) for the database workflows highlighted in this release. Let us know your thoughts, questions and feedback [on X](https://pris.ly/x) and join the conversation [on Discord](https://pris.ly/discord).