ORMs are nice but they are the wrong abstraction

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
  • pgtyped

    pgTyped - Typesafe SQL in TypeScript

  • ORMs suck, but raw SQL embedded in your code sucks too.

    This might be good time to plug my TypeScript non-ORM: https://jawj.github.io/zapatos/.

    I should say I also like what I've seen of https://kysely.dev/ and https://pgtyped.dev/.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • kysely

    A type-safe typescript SQL query builder

  • ORMs suck, but raw SQL embedded in your code sucks too.

    This might be good time to plug my TypeScript non-ORM: https://jawj.github.io/zapatos/.

    I should say I also like what I've seen of https://kysely.dev/ and https://pgtyped.dev/.

  • jOOQ

    jOOQ is the best way to write SQL in Java

  • Permazen

    Language-Natural Persistence Layer for Java

  • The most interesting/fresh approach I've seen to this problem is Permazen.

    https://github.com/permazen/permazen/

    It starts by asking what the most natural way is to integrate persistence with a programming language (Java in this case, but the concepts are generic), and then goes ahead and implements the features of an RDBMS as an in-process library that can be given different storage backends as long as they implement a sorted K/V store. So it can sit on top of a simple in-process file based K/V store, RocksDB, FoundationDB, or any SQL database like PostgreSQL, SQLite, Spanner, etc (it just uses the RDBMS to store sorted key/value pairs in that case).

    Essentially it's a way to map object graphs to key/value pairs but with the usual features you'd want like indexing, validation, transactions, and so on. The design is really nice and can scale from tiny tasks you'd normally use JSON or object serialization for, all the way up to large distributed clusters.

    Because the native object model is mapped directly to storage there's no object/relational mismatch.

  • DPP

    Deep Persistent Proxy Objects for JavaScript (by robtweed)

  • Another approach to this is DPP -- Deep Persistent Proxy Objects for JavaScript:

    https://github.com/robtweed/DPP

  • 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 😅

  • sqlc

    Generate type-safe code from SQL

  • Agreed, but tools like https://sqlc.dev, which I mention in the article, are a good trade-off that allows you to have verified, testable, SQL in your code.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • sqlc: Generating go code from sql statements

    4 projects | /r/golang | 17 May 2022
  • Show HN: Riza – Safely run untrusted code from your app

    1 project | news.ycombinator.com | 30 Apr 2024
  • Get started with Drizzle ORM and Xata's Postgres service

    1 project | dev.to | 16 Apr 2024
  • Give Up Sooner

    1 project | dev.to | 13 Mar 2024
  • DBeaver – open-source Database client

    10 projects | news.ycombinator.com | 10 Mar 2024