Skip to content

Roadmap

db-semantic-planner's core is adapter-agnostic — the schema DSL, query builders, semantic planner, and NQL parser work independently of any database. The PostgreSQL adapter is the first implementation, but the architecture is designed for multiple backends.

Current (v1.0)

FeatureStatus
Core: schema DSL, planner, query builders, NQLStable
PostgreSQL adapter (native pg Pool)Stable
DDL: introspection, comparison, migrationsStable
CLI: generate, verify, migrate, REPLStable
Extensions: pgvector, ParadeDB BM25Stable
MCP Server for AI assistantsStable

Planned

AdapterUse CaseStatus
SQLiteEmbedded, mobile, edge, testingPlanned
DuckDBAnalytics, OLAP, data sciencePlanned
MySQLLegacy systems, WordPress ecosystemPlanned
LibSQL (Turso)Edge-distributed SQLiteUnder consideration

How adapters work

Each adapter implements the Adapter interface from @dbsp/types. The core never imports adapter code — it compiles query intents into a PlanReport, and the adapter compiles that into dialect-specific SQL.

@dbsp/core (planner)  →  PlanReport  →  @dbsp/adapter-pgsql (SQL)
                                      →  @dbsp/adapter-sqlite (planned)
                                      →  @dbsp/adapter-duckdb (planned)

This means your application code stays the same — only the adapter import changes:

typescript
// doctest: skip — aspirational adapter portability example (adapter-sqlite is planned, not yet implemented; duplicate const declarations are intentional for illustration)
// PostgreSQL (today)
import { createPgsqlAdapter } from '@dbsp/adapter-pgsql';
const adapter = createPgsqlAdapter(pool);

// SQLite (future)
import { createSqliteAdapter } from '@dbsp/adapter-sqlite';
const adapter = createSqliteAdapter(db);

// Same ORM, same queries, same types
const orm = createOrm({ schema, adapter });

Feature negotiation

When an adapter doesn't support a feature (e.g., SQLite has no LATERAL JOIN), the DialectCapabilities system warns or errors at ORM creation time — not at query time. The planner automatically falls back to compatible strategies.

Contributing

Want to build an adapter? See the Architecture guide and the Adapter interface in @dbsp/types.

Last updated:

Released under the MIT License.