sqlc
nORM is heavily inspired by sqlc.
If you already like SQL-first code generation, nORM should feel familiar: you keep writing SQL, and generated code gives your application typed access to the database.
Why this page exists
sqlc is excellent for many teams. nORM is not trying to replace it outright.
nORM focuses on cases where teams still reach for ORM-style workflows because they need more runtime composition.
Where nORM adds extra ergonomics
- Dynamic filtering: compose
WHERElogic safely at runtime - Dynamic sorting: control
ORDER BYdynamically with validated columns - Partial updates: update only fields that were explicitly provided
- Single named-parameter style: keep one query parameter style across dialects
- Left-join embedding with
n.nembed(): generate nullable nested models forLEFT JOIN - Migrations workflow: built-in migrations command group (currently in progress)
Practical takeaway
If plain SQL plus generated types from sqlc already covers your needs, keep using it.
If you want SQL-first generation with the runtime composition features above, nORM is designed for that workflow.