# Drizzle ORM vs Kysely

| Attribute | Drizzle ORM | Kysely |
|---|---|---|
| **Vioscale score** | 73.3 (79% (high)) | 70.3 (79% (high)) |
| activity.commits_last_30d | 6 | 25 |
| adoption.dependent_repos | 2,870 | 1,155 |
| adoption.github_stars | 35,595 | 14,168 |
| adoption.package_downloads_weekly | 19,997,086 | 14,615,271 |
| content.faq | `[{"answer":"Drizzle is a TypeScript ORM that provides type-safe database access while allowing developers to write actual SQL rather than relying on abstraction layers. It bridges the gap between raw SQL control and compile-time type safety, making it suited for teams that know SQL and want to leverage it directly without learning a new query language.","source":"https://orm.drizzle.team","question":"What is Drizzle ORM and what problem does it solve?","confidence":0.95},{"answer":"Drizzle works with PostgreSQL, MySQL, SQLite, CockroachDB, MSSQL, and SingleStore. It connects through industry-standard drivers and supports multiple cloud database providers including Neon, Vercel Postgres, Supabase, and PlanetScale.","source":"https://orm.drizzle.team/docs","question":"What databases does Drizzle ORM support?","confidence":0.95},{"answer":"Drizzle ORM is free and open-source with no licensing costs. Development is community-supported and the code is publicly available on GitHub with over 35,000 stars.","source":"https://orm.drizzle.team","question":"Is Drizzle ORM open source and what is its licensing model?","confidence":0.95},{"answer":"Drizzle runs on TypeScript/JavaScript and supports serverless and edge computing platforms including Cloudflare Workers, Vercel, Deno Deploy, Bun, Fly.io, and browser environments. It also works with traditional Node.js applications.","source":"https://orm.drizzle.team","question":"What JavaScript runtimes and deployment platforms does Drizzle ORM support?","confidence":0.94},{"answer":"Drizzle contains zero external dependencies, making it lightweight and ideal for serverless environments where minimal package size and dependency trees matter. This design choice also simplifies deployment and reduces potential security surface area.","source":"https://orm.drizzle.team/docs/overview","question":"Does Drizzle ORM have external dependencies?","confidence":0.95},{"answer":"Drizzle offers both SQL-like and relational query APIs, ensuring queries always generate exactly one SQL statement. It uses TypeScript for schema definition and includes Drizzle Studio for database exploration, JIT row mappers for near-zero ORM overhead, and built-in validation schema integrations with tools like Zod and Valibot.","source":"https://orm.drizzle.team","question":"What are the main features that distinguish Drizzle ORM from other ORMs?","confidence":0.93},{"answer":"Drizzle is ideal for developers building modern full-stack TypeScript applications, teams deploying to serverless environments, and developers who are comfortable with SQL and want to avoid learning a proprietary query language. It suits projects where type safety, performance, and direct database control are priorities.","source":"https://orm.drizzle.team","question":"Who should consider using Drizzle ORM?","confidence":0.93}]` | - |
| deployment.options | `{"cloud":true,"self_hosted":true}` | `{"cloud":true,"self_hosted":true}` |
| description.long | Drizzle is a headless ORM that allows developers to define SQL schemas and write type-safe, relational queries against PostgreSQL, MySQL, and SQLite databases. It emphasizes serverless compatibility, small bundle size, and works across Node.js runtimes, edge platforms, and browsers without external dependencies. | A JavaScript and TypeScript SQL query builder that provides compile-time type safety and database schema validation. It works across multiple runtimes (Node, Deno, Bun, Cloudflare Workers, browsers) with zero runtime dependencies and emphasizes composable, type-safe queries over higher-level abstractions. |
| features.capabilities | `{"raw_sql":true,"multi_db":true,"languages":"JavaScript, TypeScript, Node.js, Bun, Deno","relations":true,"migrations":true,"studio_gui":true,"schema_first":true,"type_safe_queries":true,"connection_pooling":true}` | `{"raw_sql":true,"multi_db":true,"languages":"TypeScript, JavaScript (Node, Deno, Bun, Cloudflare Workers, browsers)","relations":true,"migrations":false,"studio_gui":false,"schema_first":true,"type_safe_queries":true,"connection_pooling":false}` |
| integrations.count | 14 | 21 |
| integrations.list | `[{"name":"Turso"},{"name":"Neon"},{"name":"Xata"},{"name":"PlanetScale"},{"name":"Cloudflare D1"},{"name":"FlyIO LiteFS"},{"name":"Vercel Postgres"},{"name":"Supabase"},{"name":"AWS Data API"},{"name":"Hono"},{"name":"ArkType"},{"name":"TypeBox"},{"name":"Valibot"},{"name":"Zod"}]` | `[{"name":"Supabase"},{"name":"Cursor"},{"name":"Windsurf"},{"name":"GitHub Copilot"},{"name":"ChatGPT"},{"name":"Claude"},{"name":"Claude Code"},{"name":"AirTrail"},{"name":"AWS Blocks"},{"name":"Conar"},{"name":"EmbedPDF"},{"name":"Hot Updater"},{"name":"inlang"},{"name":"Notesnook"},{"name":"OpenClaw"},{"name":"Reflect"},{"name":"Sink"},{"name":"Stacks"},{"name":"StudioCMS"},{"name":"Tunarr"},{"name":"ZenStack"}]` |
| language.primary | TypeScript | TypeScript |
| license.spdx | Apache-2.0 | MIT |
| market.availability | `{"source":"https://orm.drizzle.team","confidence":0.9,"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"cli":true,"web":true}` | `{"cli":true,"web":true}` |
| pricing | `{"type":"open_source","freeTier":true,"sourceUrl":"https://orm.drizzle.team","retrievedAt":"2026-08-01T15:16:18.937Z"}` | `{"type":"open_source","summary":"Completely free and open source (MIT license)","freeTier":true,"sourceUrl":"https://kysely.dev","retrievedAt":"2026-08-14T08:37:15.404Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | commercial | open_source |
| pricing.price_level | free | free |
| pricing.transparent | yes | yes |
| release.cadence_days | 5 | 10 |
| release.history | `[{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-rc.4","date":"2026-06-27T16:10:26Z","type":"prerelease","version":"v1.0.0-rc.4"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-rc.3","date":"2026-05-18T20:00:23Z","type":"prerelease","version":"v1.0.0-rc.3"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-rc.1","date":"2026-04-30T21:47:41Z","type":"prerelease","version":"v1.0.0-rc.1"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-rc.2","date":"2026-05-05T18:33:27Z","type":"prerelease","version":"v1.0.0-rc.2"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.22","date":"2026-04-16T10:24:05Z","type":"prerelease","version":"v1.0.0-beta.22"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.21","date":"2026-04-14T09:40:10Z","type":"prerelease","version":"v1.0.0-beta.21"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.20","date":"2026-03-27T17:17:34Z","type":"prerelease","version":"v1.0.0-beta.20"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/0.45.2","date":"2026-03-27T17:06:36Z","type":"stable","version":"0.45.2"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.19","date":"2026-03-23T19:43:59Z","type":"prerelease","version":"v1.0.0-beta.19"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.18","date":"2026-03-17T11:20:34Z","type":"prerelease","version":"v1.0.0-beta.18"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/drizzle-kit%400.31.10","date":"2026-03-17T09:31:42Z","type":"stable","version":"drizzle-kit@0.31.10"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.17","date":"2026-03-11T17:26:32Z","type":"prerelease","version":"v1.0.0-beta.17"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.16","date":"2026-03-05T20:11:36Z","type":"prerelease","version":"v1.0.0-beta.16"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/drizzle-kit%400.31.9","date":"2026-02-09T08:29:50Z","type":"stable","version":"drizzle-kit@0.31.9"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.15","date":"2026-02-05T21:41:14Z","type":"prerelease","version":"v1.0.0-beta.15"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.14","date":"2026-02-04T15:11:54Z","type":"prerelease","version":"v1.0.0-beta.14"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.13","date":"2026-02-02T19:14:48Z","type":"prerelease","version":"v1.0.0-beta.13"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.12","date":"2026-01-22T15:50:12Z","type":"prerelease","version":"v1.0.0-beta.12"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.9","date":"2026-01-15T11:50:11Z","type":"prerelease","version":"v1.0.0-beta.9"},{"url":"https://github.com/drizzle-team/drizzle-orm/releases/tag/v1.0.0-beta.11","date":"2026-01-15T11:56:27Z","type":"prerelease","version":"v1.0.0-beta.11"}]` | `[{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.5","date":"2026-08-10T01:06:13Z","type":"stable","version":"v0.29.5"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.30.0-beta.1","date":"2026-07-26T17:34:07Z","type":"prerelease","version":"v0.30.0-beta.1"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.30.0-beta.0","date":"2026-07-25T12:45:33Z","type":"prerelease","version":"v0.30.0-beta.0"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.4","date":"2026-07-17T17:42:04Z","type":"stable","version":"v0.29.4"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.3","date":"2026-07-05T23:18:21Z","type":"stable","version":"v0.29.3"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.2","date":"2026-05-16T15:52:03Z","type":"stable","version":"v0.29.2"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.1","date":"2026-05-16T00:01:27Z","type":"stable","version":"v0.29.1"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.0","date":"2026-05-08T23:54:19Z","type":"stable","version":"v0.29.0"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.17","date":"2026-05-03T01:10:50Z","type":"stable","version":"v0.28.17"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.29.0-rc.0","date":"2026-04-24T20:13:08Z","type":"prerelease","version":"v0.29.0-rc.0"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.16","date":"2026-04-10T18:07:40Z","type":"stable","version":"v0.28.16"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.15","date":"2026-03-31T01:49:35Z","type":"stable","version":"v0.28.15"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.14","date":"2026-03-20T11:28:01Z","type":"stable","version":"v0.28.14"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.13","date":"2026-03-18T22:12:57Z","type":"stable","version":"v0.28.13"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.12","date":"2026-03-14T09:13:30Z","type":"stable","version":"v0.28.12"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.11","date":"2026-01-31T18:58:27Z","type":"stable","version":"v0.28.11"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.10","date":"2026-01-18T07:13:52Z","type":"stable","version":"v0.28.10"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.9","date":"2025-12-13T17:48:32Z","type":"stable","version":"v0.28.9"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.8","date":"2025-10-09T21:47:50Z","type":"stable","version":"v0.28.8"},{"url":"https://github.com/kysely-org/kysely/releases/tag/v0.28.7","date":"2025-09-14T15:37:33Z","type":"stable","version":"v0.28.7"}]` |
| security.scorecard | - | 7.3 |
| security.vulnerabilities | `{"count":1,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=drizzle-orm&per_page=100","last_12m":1,"max_severity":"HIGH"}` | `{"count":4,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=kysely&per_page=100","last_12m":4,"max_severity":"HIGH"}` |

## Capabilities (ORM & Database Tools)

| Capability | Drizzle ORM | Kysely |
|---|:--:|:--:|
| **Core** |  |  |
| Type-safe queries | ✓ | ✓ |
| Schema migrations | ✓ | ✗ |
| Relations / joins API | ✓ | ✓ |
| Languages | JavaScript, TypeScript, Node.js, Bun, Deno | TypeScript, JavaScript (Node, Deno, Bun, Cloudflare Workers, browsers) |
| **Modelling** |  |  |
| Schema-first modelling | ✓ | ✓ |
| **Flexibility** |  |  |
| Raw SQL escape hatch | ✓ | ✓ |
| **Portability** |  |  |
| Multiple database backends | ✓ | ✓ |
| **Ops** |  |  |
| Connection pooling | ✓ | ✗ |
| **DX** |  |  |
| Data browser / studio | ✓ | ✗ |

*Source: Vioscale. Generated 2026-09-01T16:41:55.829Z. "-" = undocumented, not absent.*
