Announcing Prisma 7: A New Era of Performance, Simplicity, and Developer Experience
Prisma 7 introduces groundbreaking improvements, including a Rust-free client for 3x faster queries, enhanced type-safety, refined configuration, and a new managed Prisma Postgres offering for unparalleled developer experience.
Today, we are thrilled to unveil the latest major release of Prisma ORM and Prisma Postgres! Over the past year, our core focus has been on making application development with Prisma simpler and faster, ensuring an exceptional developer experience regardless of your chosen tools or deployment environment.
Designed for the Future
In December 2024, we shared our vision for the future of Prisma ORM and the strategic steps to achieve it. This wasn't merely a collection of ideas; it represented a firm commitment to how Prisma ORM would evolve and how we would support our vibrant community throughout this journey.
Alongside this, we launched Prisma Postgres, our own managed Postgres offering. Engineered for simplicity and performance, our goal was to provide an easily adoptable database solution that delivers the same outstanding developer experience you've come to expect from Prisma ORM.
With a clear ORM roadmap and Prisma Postgres in place, we established a robust foundation for developing the next iterations of both tools. The reception to both products has been phenomenal. We've witnessed significant growth in ORM market share and usage, and the adoption of Prisma Postgres by hobbyists and commercial users alike has been spectacular.
Moving Away from Rust
When we launched Prisma 6.0.0, we promised enhanced performance, greater flexibility, and improved type-safety. We recognized the significant work ahead, necessitating some profound changes.
We announced our decision to migrate the Prisma Client away from Rust and rebuild it entirely in TypeScript. To some, this might have seemed counter-intuitive, given Rust's reputation for speed and performance. However, that only tells half the story in our specific context.
A key drawback of the client being built in Rust was the limitation it placed on contributors to the ORM. Without strong Rust expertise, making meaningful contributions was considerably more challenging. From a technical standpoint, the communication layer between Rust and the JavaScript runtime proved slower than direct JavaScript operations, introducing additional runtime dependencies. Our friends at Deno echoed this sentiment:
“We remember hearing about Prisma’s move away from Rust and thinking about how not dealing with the native addon API would make supporting Prisma in Deno so much simpler. We were all really excited to see it!"
Luca Casonato
at Deno
The transition to a Rust-free client significantly paved the way for a faster client runtime, a smaller footprint, and a simpler deployment story. Developers no longer need to contend with runtime-specific peculiarities or infrastructure providers, such as Cloudflare Workers, imposing size limitations on deployed applications. We persevered on this path, continuously iterating on what would become the Rust-free Prisma Client. The results speak for themselves:
- 90% smaller bundle output
- 3x faster query execution
- Significantly lower CPU and memory utilization
- Simpler deployments for Vercel Edge and Cloudflare Workers
And we have the benchmarks to prove it. The best part? You don't need to overhaul your entire application to reap these benefits; the changes required to switch are remarkably straightforward.
We've engaged with dozens of community users, as well as close friends like Kent C. Dodds, and the feedback has been overwhelmingly positive:
“I upgraded a few weeks ago and it was great to see how well everything went and how easy it was to switch to the new Rust-Free Client."
Kent C. Dodds
Generated Code Out of node_modules and a New Config File
Furthermore, we've addressed feedback regarding our handling of generated artifacts, making it more efficient and universally compatible. As we covered some time ago, we historically generated the client within your project's node_modules directory. At the time, this approach made sense, aiming for the generated client to feel like any other library. However, over time, we discovered this significantly impacted developer workflows. If the client needed updating, any app-specific processes had to be halted before regenerating types. Now, we default to generating types and the Prisma Client directly into your project's source code, allowing your existing development and build tools to treat it as an integral part of your application. If you modify your models and run prisma generate, tools and file watchers can now react to these changes seamlessly, keeping your development workflow uninterrupted. Your entire setup is now part of your project, rather than being obscured within node_modules.
We also introduced support for dynamic project configuration with the new Prisma config file. This dedicated configuration file separates your data definitions from how Prisma interacts with that data. Previously, project configuration was scattered across your Prisma schema or package.json. The Prisma config file centralizes this, serving as the single location to define schema paths, seed scripts, or your database URL. Being a JavaScript or TypeScript file, the configuration can be dynamically set using tools like dotenv. This grants developers greater control over their project's configuration, elevating this aspect of the experience to the high standards expected from modern developer tools.
Faster and Fewer Types
Our focus wasn't solely on the above. One of Prisma ORM's primary advantages is its robust type-safety. This entails not only delivering accurate types but doing so with speed and efficiency. To achieve significant improvements, we collaborated with David Blass, the creator of ArkType, to evaluate the efficacy of our type generation. The detailed results are well worth reading, but the key highlights include:
- Prisma requires ~98% fewer types to evaluate a schema.
- Prisma requires ~45% fewer types for query evaluation.
- Prisma is 70% faster when performing a full type check.
Compared to other ORMs in the ecosystem, our generated types are not only faster to evaluate but also demand fewer types for TypeScript to provide valuable information to the user. Why does this matter? Because developers can build their applications with confidence, knowing that the type-safety we offer is both fast and has minimal overhead.
Prisma Postgres for All
Prisma is more than just an ORM. Our managed Postgres database was engineered to provide developers with the essential component they need when starting with Prisma ORM... a database. We built Prisma Postgres on bare-metal infrastructure, powered by unikernel microVMs. This advanced architecture ensures that everything is fast and remains consistently fast. Crucially, we prioritized developer experience, handling complex underlying components so you don't have to manage them yourself. Instead of concerns about provisioning or resource configuration, we manage all of that for you, integrating natively with Prisma ORM. The same excellent developer experience you've grown accustomed to with the ORM is now extended to your database.
Getting started with Prisma Postgres is as simple as executing a single command from your terminal:
npx prisma postgres create
You'll receive a provisioned database and a link to claim it when you're ready. For those leveraging AI agents in their developer workflows, we offer a dedicated API and MCP server that can be used to create and manage databases on demand.
“Whenever I work with Prisma, I get to the getting started guide, install things and then realize I needed to go get a database. I’d always get lost in that process so being able to create a database this easily is amazing!”
Jason Lengstorf
Prisma Postgres's evolution doesn't stop there. We've now adopted the standard Postgres connection protocol, allowing any tool within the broader ecosystem to connect to your database. This means tools like Cloudflare Hyperdrive, TablePlus, Retool, or even other ORMs can seamlessly be used with Prisma Postgres.
All these capabilities are possible because Prisma Postgres is, fundamentally, standard Postgres, meticulously built to deliver the absolute best Postgres experience.
What Else is Changing?
This release is packed with numerous other enhancements we'd love to detail, but that would make this post considerably longer. We're already grateful you've read this far! We've dedicated countless hours to working through our backlog of issues and feature requests, addressing some of the most frequently requested items, such as mapped enums, updating the minimum required Node.js and TypeScript versions for projects, and a brand new version of Prisma Studio accessible via npx prisma studio. You can find everything included in this release in our changelog, and a comprehensive migration guide is also available.
Thank You
This isn't just another version release for us; it's the foundational bedrock for what comes next for Prisma ORM and Prisma Postgres. We are committed to ensuring that the tools we build provide the best possible experience, empowering developers to focus on crafting and shipping incredible applications. So, a heartfelt thank you to our amazing community, and a special acknowledgment to everyone who provided invaluable feedback during our pre-release process. And to everyone trying out Prisma 7 now: please share your thoughts!
For migration guides and additional resources, please refer to the links below. Be sure to follow us on X/Twitter and join our Discord to receive the latest updates as they're released.
- Prisma ORM Migration Guide
- Prisma ORM Changelog
- Prisma Postgres
- Prisma ORM
- Prisma ORM repo on GitHub
- Announcement
Don’t miss the next post! Sign up for the Prisma Newsletter