Language and Framework Coupling
What language each ORM is written for, and whether it's bound to one framework or usable standalone.
Active Record (Ruby on Rails)
Ruby, and inseparable from Rails itself — it isn’t published or used as an independent library outside a Rails application.
Eloquent (Laravel)
PHP, and while technically extractable as the illuminate/database package, it’s designed for and almost always used within Laravel specifically.
Django ORM
Python, and tightly bound to Django — it isn’t designed to be used outside a Django project.
Prisma
TypeScript/JavaScript, fully framework-agnostic — usable with Express, Next.js, NestJS, or any other Node.js setup.
Drizzle
TypeScript/JavaScript, fully framework-agnostic, popular specifically in edge/serverless contexts (Cloudflare Workers, Vercel Edge Functions) thanks to its tiny footprint.
TypeORM
TypeScript/JavaScript, framework-agnostic, commonly paired with NestJS in particular, though usable anywhere Node.js runs.
Sequelize
JavaScript/Node.js, framework-agnostic, one of the longest-standing choices for plain Express or Node applications.
SQLAlchemy
Python, framework-agnostic — commonly used with Flask and FastAPI, and usable in any Python project with no framework at all.
Entity Framework Core
C#/.NET, framework-agnostic within the .NET ecosystem, though most commonly paired with ASP.NET Core.
Hibernate (JPA)
Java, framework-agnostic, commonly used both standalone and as the default JPA implementation inside Spring Boot applications.
GORM
Go, framework-agnostic, commonly paired with Gin, Fiber, or any other Go web framework (or none at all).
Diesel
Rust, framework-agnostic, usable with Actix, Axum, or any other Rust web framework.