Exposed VS drizzle-orm

Compare Exposed vs drizzle-orm and see what are their differences.

drizzle-orm

Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅 (by drizzle-team)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
Exposed drizzle-orm
28 47
7,879 19,712
1.2% 10.8%
9.5 9.7
3 days ago 2 days ago
Kotlin TypeScript
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Exposed

Posts with mentions or reviews of Exposed. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • Drizzle is just as unready for prime-time as Prisma, what else is there?
    12 projects | /r/reactjs | 6 Dec 2023
    So is it like Exposed for Kotlin which is a typesafe Kotlin DSL for building sql queries? I’ve been looking for something like this in typescript! https://github.com/JetBrains/Exposed
  • Database Testing with Testcontainers and Kotlin Exposed ORM
    3 projects | dev.to | 29 Jun 2023
    object TestDatabase { private val mySQLContainer: MySQLContainer = MySQLContainer("mysql:8.0.26").apply { withDatabaseName("test-db") withUsername("test-user") withPassword("test-password") start() // Start the container } init { val config = HikariConfig().apply { jdbcUrl = mySQLContainer.jdbcUrl username = mySQLContainer.username password = mySQLContainer.password driverClassName = "com.mysql.cj.jdbc.Driver" maximumPoolSize = 10 } val dataSource = HikariDataSource(config) // This doesn't connect to the database but provides a descriptor for future use // In the main app, we would do this on system start up // https://github.com/JetBrains/Exposed/wiki/Database-and-DataSource Database.connect(dataSource) // Create the schema transaction { SchemaUtils.create(Users) } } }
  • I'm creating a REST API using KTOR. What's the best ORM to go with KTOR ?
    2 projects | /r/Kotlin | 28 May 2023
    Exposed SQL is pretty good.
  • speed of a left join with millions of rows
    1 project | /r/SQL | 27 May 2023
    I am using Kotlins Exposed DSL to access my postgreSQL database. I am running an SQL query which involves doing a one-to-many left join, with the first table having tens of thousands of rows and the second table having millions of rows. The database is stored locally on the machine. I would expect the returned query to be less than one thousand rows.
  • Return a nested list of child table using Kotlin Exposed Dao
    1 project | /r/Kotlin | 22 May 2023
    I understand that `referrersOn` and `referencedOn` can be used, however in the documentations StarWars example, the child table needs to have a column indicating the parent_id row it is joined to. This does not work in my case as my child table can be associated to multiple parent_ids.
  • Replicating Jetbrains Exposed Star Wars Example in IntelliJ Scratch file
    1 project | /r/IntelliJIDEA | 21 May 2023
    I am following this wiki to learn kotlin exposed. It contains an example of 'Referencing' using Star Wars data. I would like to create a scratch and/or console file in IntelliJ which reproduces this simple example. However When I try to run the code I get errors (see below). Is there something I am missing here?
  • How are you all handling database persistence?
    4 projects | /r/Kotlin | 22 Mar 2023
    Exposed by JetBrains https://github.com/JetBrains/Exposed
  • Why people don't like Java?
    5 projects | /r/programming | 27 Feb 2023
    Alternatively there are... hybrid solutions like Kotlin's https://github.com/JetBrains/Exposed or https://jdbi.org/ that don't quite... do all the heavy lifting for querying but allow you to sorta stitch queries together manually.
  • Using PostgreSQL as an Append-only Datastore with Kotlin and Exposed
    3 projects | /r/Kotlin | 24 Feb 2023
    In our last episode (https://youtu.be/Uza\_dWsNMUs) we worked out how to save stock items in PostgreSQL (https://www.postgresql.org/) using the JetBrains Exposed library (https://github.com/JetBrains/Exposed). This time we refactor our existing file-based storage, extracting an interface that we can implement with files, in-memory, or with Exposed. For the database version, instead of replacing items in a table when they change, we choose to implement an append-only datastore. This keeps all the old versions of every row, using a query to select the latest versions when we want to see the current state. This has the advantage that we can rebuild the state of our system if things go wrong, and may also be faster than amending when we consider transactions. This is part 62 of an exploration of where a Test Driven Development implementation of the Gilded Rose stock control system might take us in Kotlin. You can see the whole series as a playlist https://www.youtube.com/playlist?list=PL1ssMPpyqociJNwykAOB9\_KEZVW7BW7m2 and the code on GitHub https://github.com/dmcg/gilded-rose-tdd If you like this, you’ll probably like my book Java to Kotlin, A Refactoring Guidebook (http://java-to-kotlin.dev). It's about far more than just the syntax differences between the languages - it shows how to upgrade your thinking to a more functional style. I have some free time between producing videos and working for team Gilded Rose. If you like these videos I'd like to work with you - please get in touch - [email protected]
  • Writing to db
    5 projects | /r/Kotlin | 20 Feb 2023
    I have used hikari and exposed to do this in the past with postgres, although other dialects are supported.

drizzle-orm

Posts with mentions or reviews of drizzle-orm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-13.
  • Get started with Drizzle ORM and Xata's Postgres service
    1 project | dev.to | 16 Apr 2024
    Drizzle ORM is a very popular TypeScript ORM that provides type safe access to your database, automated migrations, and a custom data model definition.
  • Shape Typing in Python
    5 projects | news.ycombinator.com | 13 Apr 2024
    > being able to have a completely typesafe ORM such as Drizzle (https://orm.drizzle.team/) feels like a Rubicon moment, and touching anything else feels like a significant step backwards.

    Alright, but there's nothing stopping you from having a completely typesafe ORM in python, is there?

    Sure, there's isn't really one that everyone uses yet, but the python community tends to be a bit more cautious and slower to adopt big changes like that.

  • Don't use your ORM entities for everything – embrace the SQL
    4 projects | news.ycombinator.com | 29 Mar 2024
    Drizzle [1] comes pretty close the last time I checked.

    [1]: https://orm.drizzle.team

  • I Deployed My Own Cute Lil’ Private Internet (a.k.a. VPC)
    8 projects | dev.to | 18 Mar 2024
    Each app’s front end is built with Qwik and uses Tailwind for styling. The server-side is powered by Qwik City (Qwik’s official meta-framework) and runs on Node.js hosted on a shared Linode VPS. The apps also use PM2 for process management and Caddy as a reverse proxy and SSL provisioner. The data is stored in a PostgreSQL database that also runs on a shared Linode VPS. The apps interact with the database using Drizzle, an Object-Relational Mapper (ORM) for JavaScript. The entire infrastructure for both apps is managed with Terraform using the Terraform Linode provider, which was new to me, but made provisioning and destroying infrastructure really fast and easy (once I learned how it all worked).
  • Exploring Astro DB
    2 projects | dev.to | 13 Mar 2024
    It's just SQL so you can take it out at any moment and move to any other DB provider. The package for working with Astro DB, @astrojs/db, includes Drizzle ORM so migration to a different provider should be relatively painless
  • ORMs are nice but they are the wrong abstraction
    7 projects | news.ycombinator.com | 1 Feb 2024
  • Drizzle TypeScript ORM
    1 project | news.ycombinator.com | 31 Jan 2024
  • Basic analytics with Vercel Postgres, Drizzle & Astro
    5 projects | dev.to | 17 Jan 2024
    Since Vercel's analytics pricing is a bit too expensive for my use case (where I hit the limit of 2,500 requests per month), and I didn't like using Google Analytics (not a big fan of Google), I decided to build my own analytics dashboard. Databases was something I didn't work with much before directly, so I decided to use an ORM, Drizzle, which is quite lightweight and easy to use.
  • Edge Functions: Node and native NPM compatibility
    2 projects | news.ycombinator.com | 12 Dec 2023
    do yourself a favor and ditch Prisma. It's a bloody mess of a project and codebase. I recommend https://github.com/drizzle-team/drizzle-orm to anyone that'll listen.
  • Drizzle is just as unready for prime-time as Prisma, what else is there?
    12 projects | /r/reactjs | 6 Dec 2023
    I myself ran into some issues when I started using drizzle with mysql. They had issues in the way they were handling datetime types. At the time I just used workarounds but then decided to submit a PR since the solution was pretty simple. I just liked drizzle's approach so much that I ended up committing more PRs. At this point, I'm one of the mayor contributors of the library. I think that we have to give some leeway to OSS libraries. Managing OSS is not easy, everybody's issues are important and mayor to them, but there's just so many hours in the day to work for free (or very little). At the end of the day, it's just software prone to have issues.

What are some alternatives?

When comparing Exposed and drizzle-orm you can also consider the following projects:

Ktorm - A lightweight ORM framework for Kotlin with strong-typed SQL DSL and sequence APIs.

kysely - A type-safe typescript SQL query builder

SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL

Prisma - Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

kotlin-jpa-specification-dsl - This library provides a fluent DSL for querying spring data JPA repositories using spring data Specifications (i.e. the JPA Criteria API), without boilerplate code or a generated metamodel.

MikroORM - TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases.

requery - requery - modern SQL based query & persistence for Java / Kotlin / Android

knex-tree - Query hierarchical data structures in sql with knex

kwery - Kwery is an SQL library for Kotlin

MongoDB - The MongoDB Database

kotlin-nosql - NoSQL database query and access library for Kotlin

hono - Web Framework built on Web Standards