Vibeleaderboard
Index / tool

Sequelize

sequelize.org
Visit sequelize.org
Category
Developer Tools
Rank
No. 2770Tools index

Previous survey · No. 2640 ·

Pricing
Open Source
Type
TOOL
Use case
Coding
Interfaces
SDK
Builder
sequelize
Latest release
v6.37.8
Date

About

Promise-based Node.js ORM. Long-standing Node ORM for Postgres, MySQL, MariaDB, SQLite, and SQL Server. Predates TypeScript-first ORMs but still widely used.

What it does

An object-relational mapper for JavaScript servers: you define models as classes, and it writes the queries, joins related rows and manages transactions against the database behind them. One core library holds models, associations, transactions and a structured error hierarchy, while each database engine ships as its own connector package. That list runs to nine engines, including Snowflake, Oracle, IBM Db2 and Db2 for IBM i, alongside the usual open-source ones. A companion command-line tool handles project tasks.

Why it's ranked here

Breadth and a permissive license carry the case. MIT licensed, with a connector for nine database engines, and a test suite wired to run unit and integration tests against every one of them, plus a native Postgres variant. The weight on the other side is momentum: the next major version is still an alpha, both it and the older stable line are listed as supported for security fixes, and the README openly recruits new maintainers to finish it.

What's good

The error model is unusually specific. Instead of one generic failure, the core exports distinct errors for unique and foreign key constraint violations, optimistic lock conflicts, connection timeouts, refused connections, unreachable hosts and pool acquire timeouts, so calling code can react to each case. Transactions expose nesting modes, isolation levels and locks directly. Every package ships both CommonJS and ES module builds with type declarations. The repository keeps scripts to start the oldest and latest supported release of each database locally, so contributors can check behaviour at both ends of the supported range.

Tradeoffs

The project states its support policy as time-permitting, and the README asks for new maintainers to finalize the next major version. That version is published as an alpha, so new projects choose between the stable line and a moving target with an upgrade guide between them. The alpha core requires Node 22.18 or 24 and later, which rules out older runtimes. Several connectors depend on native builds, including the IBM, Oracle, SQLite and native Postgres drivers, which can complicate installs on locked-down or unusual platforms.

How to use it well

Pick it when an application must talk to an enterprise database such as Oracle, Snowflake or Db2 from JavaScript, or when an existing codebase already uses it. For a new project, decide deliberately between the stable line and the alpha, and read the upgrade guide first. Install only the connector for the engine you run, since each ships separately. Catch the specific constraint and connection errors rather than a generic one. Project tooling is a separate command-line install, not part of the core library.

Technical notes+

The repository is a Yarn workspaces monorepo driven by Lerna and Nx (package.json), with one package per dialect under packages/. packages/core/package.json declares a CommonJS package with conditional exports for import and require, a separate decorators-legacy entry, an explicitly unstable _non-semver-use-at-your-own-risk_ subpath, and engines of ^22.18.0 || >=24.0.0. packages/core/src/index.mjs re-exports the CommonJS build as named ESM exports, including Transaction, TransactionNestMode, IsolationLevel, Lock, Op, DataTypes and the error classes. packages/postgres/src/index.ts is a generated barrel over the connection manager, dialect, query generator and query interface, and packages/postgres/package.json depends on pg, pg-hstore and wkx. packages/core/src/associations/index.ts defines before and after associate event payloads. package-support.json declares a time-permitting response.

Observed

License
MIT (LICENSE)
Language
TypeScript and JavaScript
Packaging
npm packages: a core package plus one connector package per database, and a separate CLI package
Supported databases
Postgres, MySQL, MariaDB, SQLite, Microsoft SQL Server, Snowflake, Oracle, Db2, Db2 for IBM i
Module formats
CommonJS and ES modules, with type declarations (packages/core/package.json)
Interfaces
Library API plus a command-line tool (packages/cli/README.md)
Runtime requirement
Node ^22.18.0 or >=24.0.0 for the alpha core (packages/core/package.json)
Support policy
Time-permitting response (package-support.json)
Test setup
Mocha unit and integration suites runnable per database dialect

Read from README.md, package.json, LICENSE, SECURITY.md, package-support.json, packages/core/README.md, packages/core/package.json, packages/core/src/index.mjs, packages/postgres/package.json, packages/postgres/src/index.ts, packages/core/src/associations/index.ts, packages/cli/README.md.

Tags

ORM & Data LayerSequelize

Tech Stack

Node.jsTypeScript

Media

Sequelize

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.