Show HN: Write universally accessible SQL, not library-specific ORM wrapper APIs

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

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
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • pure-orm

    A pure ORM for writing native SQL queries yielding pure business objects

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

    A type-safe Postgres query builder for TypeScript. (by Ff00ff)

    In a type-safe environment I think you should just be able to switch your pur sang SQL builder to another dialect. Because of the type-safety you’ll be able to find incompatibilities at compile time which makes the migration easy enough (ignoring data migration). This avoids creating a weird ad hoc SQL dialect trying to fit all the others in a single API.

    I work on Mammoth which is a pur sang Postgres query builder, see https://github.com/Ff00ff/mammoth.

  • rusqlite-model

    Model trait and derive implementation for rusqlite

    I'm quite anti-ORM, though I've never not used one professionally (just because it's already been there / not my decision), so that might be different if I did for a while. I do think something's necessary though, and it maybe is a bit arbitrary where we draw the line for what's an 'ORM'?

    For example, I really enjoyed using rusqlite for a little side project/personal thing, but found apart from anything else just the repetition of `(?,?,?,?,?,?)` any time I wanted to insert something was annoying, for example. I started working a bit on [0] .. I don't know if I'd call it an ORM, just so I didn't have to do that, and could write `Model { ... }.insert(&conn)` instead. But still write plain SQL queries, I just want easy mapping between db table and language 'model' struct/class; column and field/attr.

    [0] - https://github.com/OJFord/rusqlite-model

  • Norm

    The SQL generation library you already know how to use. (by justinvanwinkle)

    I tried to do something similar with https://github.com/justinvanwinkle/Norm about 10 years ago. It hasn't generated a lot of interest, but I find it quite useful to construct queries without having to learn the minutia of an ORM library, or even a SQL generation library.

  • Hangfire

    An easy way to perform background job processing in .NET and .NET Core applications. No Windows Service or separate process required

    While that is true, I think most queries would involve parameters of some sort, so they need to be fiddled with at the very least after pasting to your code. Then you'd wanna format them so they don't look that out of place in your code. And at that point you've likely got a maybe-weirdly indented, non-syntax-highlighted query.

    I'm not super religious about this - a colleague and I were discussing Hangfire.io's SQL Server code which has inline SQL[0] and we ended up agreeing that it's fine - but if I'm writing an application with a SQL backend I'm definitely leaning towards something like EF in .NET

    [0] = https://github.com/HangfireIO/Hangfire/blob/master/src/Hangf...

  • pgdbf

    Convert XBase / FoxPro databases to PostgreSQL

    Sigh, if only. OK, so the rest of the story was that the original app was written in Visual FoxPro. I was hired to build a web frontend for it. Well, turns out 1) there is, or at least was, no native VFP client for Unix, and 2) the Windows client was single threaded per host, so you couldn't even farm the connectivity out to a Windows process. After struggling with this for a while -- a cluster of Win XP hosts running a single-threaded VFP client and serving results to a Linux webserver via XMLRPC, as was the custom at the time -- I finally said "screw this, let's brute force it." That turned into https://github.com/kstrauser/pgdbf, which is an app to convert a VFP table into a PostgreSQL table. We had it running on a cron job, which worked fine because the website was read-only and it was the VFP app that was actually writing to the tables. It was alright to have up to a few hours of latency between the VFP view of the data and the PostgreSQL view of it.

    When the company later committed to rewriting the VFP app in a sane language, they wrote it to run directly against PostgreSQL. That was quite a few years after I'd started there, though.

  • slonik

    A Node.js PostgreSQL client with runtime and build time type safety, and composable SQL.

    In this space but a little lighter:

    https://github.com/gajus/slonik

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub 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

  • Which ORM would you pick, Prisma or Typeorm

    3 projects | /r/node | 16 Apr 2023
  • ORM vs SQL

    5 projects | /r/node | 21 May 2021
  • What do you think about ORMs?

    6 projects | /r/node | 18 Jan 2021
  • pg-mem, an in memory postgres DB instance for your unit tests, is now bound to multiple libraries (Knex, Typeorm, Slonik, pg, pg-promise) ... suggestions for the next one ?

    6 projects | /r/javascript | 5 Jan 2021
  • A Software Engineer's Tips and Tricks #1: Drizzle

    3 projects | dev.to | 29 Apr 2024

Did you konow that TypeScript is
the 2nd most popular programming language
based on number of metions?