Introduction

SQLSpec is a SQL first data access layer. It keeps you close to SQL while adding type-safe results, consistent driver APIs, and optional tooling for query construction and observability.

What SQLSpec does

First-class SQL

Write the SQL you want. SQLSpec validates and normalizes statements before execution.

Type-safe results

Map rows into typed objects like msgspec, Pydantic, or dataclasses.

Unified connectivity

One API for sync/async drivers across PostgreSQL, SQLite, DuckDB, MySQL, Oracle, and more.

Optional builder + observability

Use the fluent SQL builder and instrument queries with OpenTelemetry or Prometheus.

Not an ORM

SQLSpec is intentionally not an ORM. It optimizes for SQL-first workflows.

Focus

SQLSpec

Traditional ORM

Abstraction

Minimal, SQL-centric

Model-centric, hides SQL

Core use case

Query mapper + data integration

Object graphs + unit-of-work

Data workflows

Fast, explicit, Arrow-friendly

Heavier mapping and state tracking

Good fit when

  • You prefer writing SQL and want predictable behavior.

  • You need consistent APIs across multiple databases.

  • You care about performance, type safety, and data‑engineering workflows.

  • You want optional tools rather than a full ORM stack.