Skip to content

SDK overview

Every SDK implements the same QQL lifecycle: parse input, inspect or rewrite an AST, compile or explain offline, then execute against Qdrant. Choose the host that is already closest to your application; do not translate a query into a different syntax per service.

HostInstallLive executionDistinct capability
Rustqql-core + qqlREST and optional gRPCDirect AST, planning, and executor APIs
PythonpyqqlREST and optional gRPCNative statement handles and async execution
Node.js@veristamp/nqqlREST and optional gRPCNative N-API bindings and parseJson
Browser/WASMqql-wasmREST/fetchOffline analyze, JavaScript embedder, transferable bytes
QQLOne query, every SDKTry in playground
QUERY TEXT 'portable query'
FROM docs
USING dense
LIMIT 5;
  1. Parse or analyze the source before sending traffic.
  2. Inject a trusted filter when the caller must be constrained.
  3. Use compile or explain to inspect the Qdrant operation.
  4. Execute a statement, script, or independent host array.
CapabilityRustPythonNode.jsWASM
ParseParser::parse_allparseparseparse
Validateparse resultis_validisValidisValid
Inject policyinject_filterinject_filterinjectFilterinject_filter / Stmt.injectFilter
Explain and compileplanner/runtimeexplain, compile_queryexplain, compileQueryanalyze, compile
ExecuteExecutor::executeClient.executeClient.executeClient.execute

For local in-process execution, the edge packages (pyqql-edge, @veristamp/nqql-edge, and the qql-edge crate) build a self-contained backend with embedded models. They are a separate feature surface from the remote SDKs; see the Edge overview before adopting them.

Choose a host page for complete API and lifecycle guidance.