🪝 QAIL

The AST-Native Query Compiler

Build with AST. Execute with Bytes.

QAIL AST QailCmd::get("users") .select_all() .filter("active", Eq, true)
PostgreSQL SELECT * FROM users WHERE active = true
MongoDB db.users.find({ active: true })
Oracle SELECT * FROM users WHERE active = 1
ORMs: Text → Parse → AST → SQL StringParse → Execute
QAIL: AST → Wire Protocol Bytes → Execute No strings. Direct.
cargo install qail
npm i qail-wasm
🦀 Rust 🐍 Python 🐹 Go 🐘 PHP ☕ Java 🟢 Node ⚡ C/C++ 🦀 Rust 🐍 Python 🐹 Go 🐘 PHP ☕ Java 🟢 Node ⚡ C/C++

Native Rust • Universal C-API • WASM

Why QAIL?

AST-first. Native drivers. Zero transpilation overhead.

🧬

AST-First Architecture

Build queries as native data structures. No string parsing. No text-to-AST-to-text overhead.

🔌

Native Database Drivers

Direct wire protocol. No SQLx middleman. Full control over connection and execution.

🛡️

Structurally Safe

Injection impossible by design. Code and data separated at the AST level, not string level.

🌐

Polyglot by Design

Same QailCmd AST encodes to Postgres, MySQL, MongoDB, and more. Truly database-agnostic.

Zero Overhead

No runtime parsing. AST is built at compile time, serialized directly to wire protocol.

🎯

Type Safe End-to-End

Schema validation at build time. Wrong queries don't compile. Wrong types don't bind.

Supported Databases

One AST. 19 targets. SQL and NoSQL.

SQL Dialects

PostgreSQLPostgreSQL
MySQLMySQL
SQLiteSQLite
SQL Server SQL Server
Oracle Oracle
BigQueryBigQuery
SnowflakeSnowflake
Redshift Redshift
DuckDBDuckDB
MariaDBMariaDB
InfluxDBInfluxDB

NoSQL

MongoDBMongoDB
DynamoDB DynamoDB
RedisRedis
CassandraCassandra
ElasticsearchElasticsearch
Neo4jNeo4j
Qdrant Qdrant

Language Bindings

Native packages for your language. All powered by one Rust core.

🦀

Rust

cargo add qail-core ✓ Stable
🌐

WASM / Node

npm i qail-wasm ✓ Stable
🐍

Python

pip install qail ✓ Ready
🐹

Go

go get qail-lang/qail-go ✓ Ready
🐘

PHP

composer require qail/qail ✓ Ready

Java

com.qail:qail ✓ Ready

C / C++

libqail_ffi.a via FFI

One Language. Everywhere.

🦀

Rust

qail-core + builder API

🌐

Browser

qail-wasm (~50KB)

📦

Node.js

npm install qail-wasm

Skip the String Layer.

Build with AST. Execute with Bytes.