Skip to main content

The ORM that
Speaks Dart

Type-safe, annotation-driven, and multi-dialect.
Experience the power of Sequelize with the safety of Dart.

  • Postgres
  • MySQL
  • SQLite
  • MSSQL
  • DB2

A quick tour

Click through a real model → generator → query flow. Everything is Dart-first.

Define a modelOpen docs
import 'package:sequelize_orm/sequelize_orm.dart';

part 'users.model.g.dart';

(tableName: 'users', timestamps: false)
abstract class Users {
()
()
()
DataType id = DataType.INTEGER;

.IsEmail('Email is not valid')
()
DataType email = DataType.STRING;

('first_name')
.Min(4)
()
DataType firstName = DataType.STRING;

static UsersModel get model => UsersModel();
}
DB shape stays explicit
- table: users
- columns: id (PK, autoincrement), email (NOT NULL, isEmail), first_name (NOT NULL, min 4)
- generated: typed helpers + query extensions

How it works

A simple flow you can explain in one minute.

1
Define
Annotate a Dart class with @Table and column annotations.
2
Generate
Run build_runner to get typed helpers + query extensions.
3
Run
Use the same API on Dart VM and dart2js.
Easy to Use

Dart-first (and strongly typed)

Build queries with typed columns and IDE autocomplete. Your model definitions power a safer query experience.

Focus on What Matters

Annotations + code generation

Define tables with simple annotations and let build_runner generate model wrappers, helpers, and typed query extensions.

Powered by React

Same API on server + web

Run on Dart VM or dart2js without changing how you write models and queries.