Projects / Multi-Model Databases
Subproject
CypherGLOT
A Cypher-to-SQL compiler that lets developers think in graph terms, then lowers admitted Cypher through an internal AST and IR into backend-aware SQL for host runtimes.

Cypher
Think in graph queries instead of hand-writing graph-shaped SQL.
Figure 1
From Cypher intent to SQL output
- Cypher query input
- Admitted-subset validation
- Normalization of accepted shapes
- Backend-aware SQL output
Developers often want to think in graph terms, but implementing graph queries on top of SQL backends usually means hand-writing complex SQL with joins, traversal patterns, and storage-specific tricks. That is hard to maintain, hard to port, and easy to get wrong.
CypherGLOT exists so developers can write Cypher instead, then let the compiler carry that graph intent forward into backend SQL output for the target runtime.
Compilation
Use a compiler boundary between graph intent and SQL execution.
Figure 2
Compiler path
- Parse Cypher
- Validate admitted subset
- Normalize internal AST
- Lower through graph-relational IR
- Emit SQLGlot-backed output
CypherGLOT is intentionally compiler-only. It parses Cypher, validates an admitted Neo4j-like subset, normalizes the accepted shape into internal structures, lowers it through a graph-relational IR, and hands SQLGlot-backed output to the target runtime.
That keeps parsing, validation, normalization, and lowering separate from storage and execution, so host runtimes stay simpler and more testable.
Targets
Target multiple SQL backends through one Cypher surface.
Figure 3
Backend direction
- SQLite
- DuckDB
- PostgreSQL
- Other SQL-backed runtimes
That compiler path makes Cypher support reusable across runtimes such as HumemDB and creates a path toward targets like SQLite, DuckDB, PostgreSQL, and other SQL-backed systems.
Instead of burying graph logic inside custom SQL for each backend, the project offers an explicit translation contract with clearer guarantees and a much better developer story.
Resources