The AST-Native Query Compiler
Build with AST. Execute with Bytes.
QailCmd::get("users")
.select_all()
.filter("active", Eq, true)
SELECT * FROM users WHERE active = true
db.users.find({ active: true })
SELECT * FROM users WHERE active = 1
Text → Parse → AST → SQL String → Parse → Execute
AST → Wire Protocol Bytes → Execute
No strings. Direct.
cargo install qail
npm i qail-wasm
Native Rust • Universal C-API • WASM
AST-first. Native drivers. Zero transpilation overhead.
Build queries as native data structures. No string parsing. No text-to-AST-to-text overhead.
Direct wire protocol. No SQLx middleman. Full control over connection and execution.
Injection impossible by design. Code and data separated at the AST level, not string level.
Same QailCmd AST encodes to Postgres, MySQL, MongoDB, and more. Truly database-agnostic.
No runtime parsing. AST is built at compile time, serialized directly to wire protocol.
Schema validation at build time. Wrong queries don't compile. Wrong types don't bind.
One AST. 19 targets. SQL and NoSQL.
Native packages for your language. All powered by one Rust core.
cargo add qail-core
✓ Stable
npm i qail-wasm
✓ Stable
pip install qail
✓ Ready
go get qail-lang/qail-go
✓ Ready
composer require qail/qail
✓ Ready
com.qail:qail
✓ Ready
libqail_ffi.a
via FFI
qail-core + builder API
qail-wasm (~50KB)
npm install qail-wasm
Build with AST. Execute with Bytes.