rnxORM
A TypeScript ORM for PostgreSQL, SQL Server and MariaDB, built on the Entity Framework Core mental model: a DbContext, change tracking, and one saveChanges() at the end.
npm install rnxorm pg reflect-metadatacopyThis one is beta, and I would rather tell you than have you find out
The test suite runs against an in-memory mock provider, not against real databases, so treat the PostgreSQL, SQL Server and MariaDB providers as beta. Some APIs exist but do not work yet and are marked as such in the repo: explicit loading, owned entity types, hasDefaultValue(), computed columns, and lazy loading. The migration CLI subcommands are not implemented.
Use it on something you can afford to be wrong about.
The problem
If you have spent years in .NET and then land in a TypeScript codebase, every ORM feels subtly wrong. You keep reaching for a DbContext, for change tracking, for the idea that you mutate your objects and then commit the lot in one transaction at the end. Most Node ORMs want you to think in queries instead.
rnxORM brings the EF Core model over: a context, sets, tracked entities, one save.
What it does
import { DbContext, PostgreSQLProvider } from "rnxorm";
import { User } from "./User"; // @Entity("users"), @PrimaryKey, @Column
const db = new DbContext(new PostgreSQLProvider({
host: "localhost", port: 5432,
user: "postgres", password: "password", database: "mydb",
}));
await db.connect();
await db.ensureCreated();
const users = db.set(User);
const alice = await users.where("name", "=", "Alice").first();
if (alice) {
alice.age = 26;
await db.saveChanges(); // the change was tracked; this is one transaction
}- Change tracking, batched into a single transaction on
saveChanges(). - Decorators:
@Entity,@Column,@PrimaryKey,@Index,@Unique, and all four relationship kinds. - Fluent queries with real SQL aggregates and per-dialect pagination.
- ModelBuilder, data seeding through
hasData(), optimistic concurrency tokens. - Ships an
llms.txt, so an AI agent can read the API without guessing.
Where it fits
A TypeScript service written by people who think in Entity Framework. Given the status above, that means an internal tool or a side project, not your billing system.
The full API, and the honest list of what does not work yet, on GitHub →