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 SELECT * FROM "users" WHERE "active" = 1 db.users.find({ "active": true }) filter: { must: [{ key: "active", match: { value: true } }] } Text → Parse → AST → SQL String → Parse → Execute String → Parse → Execute Runtime checks. 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. Multimodal Targets. SQL and Document.
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.