Type-safe SQL for Dart, inspired by Drizzle ORM. No code generation. No dynamic.
This is the Dartonic monorepo. The project is split into focused packages so you only depend on what you need: the driver-agnostic core, one package per database driver, plus CLI and tooling.
The main, publishable package is dartonic_core — start there.
| Package | Description |
|---|---|
dartonic_core |
Core query builder, schema DSL, conditions, relations, migrations and ORM. No driver dependencies. |
dartonic_sqlite |
SQLite driver — connectSqlite(). |
dartonic_postgres |
PostgreSQL driver — connectPostgres(). |
dartonic_mysql |
MySQL driver — connectMysql(). |
dartonic_migrations_fs 🧪 beta |
Filesystem migration loader (reads .sql files in CLI/server environments). |
dartonic_zard |
Bridge to zard — derive validation schemas from tables (createInsertSchema / createSelectSchema / createUpdateSchema), drizzle-zod style. |
dartonic_cli 🧪 beta |
Official CLI — init, migrate, generate, studio. |
dartonic_studio 🧪 beta |
Studio backend — HTTP API to inspect tables and run queries. |
dartonic-docs |
Documentation site (Vite + React). bun install && bun run dev; bun run build also generates llms.txt. |
Network drivers accept a PoolConfig — connectPostgres(uri, schemas: [...], pool: PoolConfig(max: 20))
(same for connectMysql). SQLite accepts it as a no-op for API symmetry.
dartonic_core is publishable. The driver packages and dartonic_zard depend
on dartonic_core (and zard) via path dependencies, so they can only be
published to pub.dev after dartonic_core (and zard) are published there —
swap the path deps for version deps at that point. Run dart pub publish --dry-run
per package before publishing.
Runnable projects live in examples/:
book_api_crud— REST API with CRUD over SQLite.twitter_clone— relations and repositories.flutter_todo— Flutter app using Dartonic.manual_test— scratchpad for manual testing.
