Skip to main content
Two engineers. One grammar. Fifteen dialects.

A better SQL formatter.
And the compiler behind it.

dfmt is our free SQL formatter: 15 dialects, native dbt and Jinja, idempotent. dquery is the compiler underneath it, licensable for products that need parsing, column lineage, and type inference.

Free. Forever.

dfmt: a free SQL formatter, with the compiler underneath

dfmt is the first product we shipped on top of the Datoria compiler. It's free. No trial, no signup. We figure the easiest way to show you what the compiler can do is to let you format some SQL with it.

  • 15 dialects — Snowflake, BigQuery, PostgreSQL, T-SQL, Spark, DuckDB, and nine more
  • Native Jinja — templates go through a real Jinja engine, not a regex pass
  • Adaptive — keeps your line breaks where you put them, normalizes the rest
  • Idempotent — format(format(x)) = format(x), always
  • 11,000 files, 0 errors — across 58 public dbt projects

Need the engine itself?

If your product is built on SQL — data catalogs, governance platforms, AI governance, DSPM, database activity monitoring, ELT and migration tools, IDE plugins, agentic-SQL tools, database engines that need a real SQL front-end — you need a compiler that handles every dialect you care about, parses in microseconds, and ships with semantic analysis. Talk to us.

dquery is the compiler. It's not publicly available. Column-level lineage, type inference, query optimization, scope resolution, error recovery, dbt compilation: the whole semantic stack. We're letting a small number of companies in early.

The backstory

We're a two-person team in Norway. We like functional programming and data infrastructure, and we like making tools other engineers actually want to use.

Three years ago we got tired of how SQL tooling works. Every tool handles one dialect. Lineage tools are black boxes. Formatters mangle your Jinja. Everything is slow.

So we built a compiler. One declarative grammar generates specialized, JIT-optimized compilers for all 15 SQL dialects we support. Each one produces a typed, immutable AST with over 9,400 node types. On top of that: scope resolution, column lineage, type inference, query optimization, error recovery, and a full Jinja evaluator for dbt projects.

In our benchmarks it's faster than the hand-written Rust and C parsers we've measured against. It passes the official conformance suites for PostgreSQL's libpg_query and Google's ZetaSQL, and it compiles 59 public dbt projects (nearly 10,000 models) with no parse errors.

None of it is open source. It's the foundation of what we're building. dfmt is the piece you can use today.

Øyvind
Øyvind
Ingar
Ingar

What we're building next

Column lineage and semantic analysis you can verify. An LSP server so your IDE understands SQL the way the compiler does. An agent API for LLM-driven SQL tools. dfmt is the free preview; the rest is on the way.