SDK Capability Matrix
Matrix below is sourced directly from qail.rs/sdk project files:
TypeScript package metadata and client source, Swift package config/client source,
Kotlin Gradle/client source, and Dart pubspec/client source.
| SDK | Package | Version | Runtime | Source | Notes |
|---|---|---|---|---|---|
| TypeScript | @qail/client (source module) | 0.2.0 (unreleased) | Node.js >= 18 | sdk/typescript | Builder API, raw DSL query/batch, schema type generation, and WebSocket subscription support. |
| Swift | Qail (Swift package) | swift-tools-version 6.0 | iOS 15+, macOS 12+, tvOS 15+, watchOS 8+ | sdk/swift | Async/await SDK with fluent builders, aggregate helpers, openapi/schema utilities, and WebSocket subscription support. |
| Kotlin | io.qail (Gradle module) | 0.1.0 | Kotlin JVM 2.3.0 + Ktor 2.3.9 | sdk/kotlin | Fluent builders, aggregate and upsert helpers, raw DSL query/batch, schema/openapi helpers, and WebSocket subscription support. |
| Dart | qail (source module) | 0.1.0 (unreleased) | Dart SDK >=3.4.0 <4.0.0, Flutter and server-side Dart | sdk/dart | Fluent builders, aggregate helpers, raw DSL query/fast/batch, transactions, openapi/schema utilities, and WebSocket subscription support. No upsert helper yet. |
Feature Parity Snapshot
TypeScript
@qail/client exposes builder APIs (from/into/update/delete),
raw DSL (query, queryFast, batch), transactions via
beginTxn, utility endpoints
(health/openapi/schema/generateTypes), and WebSocket subscriptions.
Swift
Swift package client provides async/await query builders, aggregate and upsert helpers, raw DSL and batch paths, utility endpoints, plus WebSocket subscribe/unsubscribe flow.
Kotlin
Kotlin JVM SDK (Ktor-based) mirrors builder/query semantics with typed responses, aggregate/upsert helpers, openapi/schema utilities, and WebSocket subscription support.
Dart
Pure Dart over HTTP and WebSocket with no FFI or plugin registration, so it runs on
Flutter iOS/Android/web/desktop and server-side Dart. Provides fluent builders
(from/into/update/delete), raw DSL (query, queryFast,
batch), transactions via beginTxn, and subscribe
for realtime. Dart generics are not reified, so pass an explicit fromJson
decoder for typed rows.
Getting Started
1. TypeScript SDK Source Module
TypeScript SDK is consumed from the monorepo source path; it is not yet published to npm.
git clone https://github.com/qail-io/qail.git
cd qail/sdk/typescript
npm install && npm test 2. Swift SDK Source Module
Swift SDK currently lives in the monorepo source path.
git clone https://github.com/qail-io/qail.git
cd qail/sdk/swift
swift test 3. Kotlin SDK Source Module
Kotlin SDK is provided as a Gradle JVM module in the monorepo.
git clone https://github.com/qail-io/qail.git
cd qail/sdk/kotlin
./gradlew test 4. Dart SDK Source Module
Dart SDK is consumed from the monorepo as a path or git dependency, then imported from package:qail/qail.dart.
git clone https://github.com/qail-io/qail.git
cd qail/sdk/dart
dart test Related Pages
- PostgreSQL drivers - direct Rust and Zig runtime pages.
- Gateway AutoREST page - runtime API surface for SDK clients.
- Rust driver page - qail-pg protocol driver intent.
- Zig driver page - qail-zig driver intent.
- Changelog - release timeline and dedicated page links.
Integration Tips
- Consume TypeScript, Swift, Kotlin, and Dart directly from
sdk/typescript,sdk/swift,sdk/kotlin, andsdk/dart; the Dart SDK is wired in as a path or git dependency and imported frompackage:qail/qail.dart. - Keep query-shape parity across SDK tracks by validating builder, raw DSL/batch, aggregate, and schema/OpenAPI utility paths together.
- Use SDK WebSocket subscription primitives for realtime streams instead of building custom protocol handling in app code.
- Choose
/sdkfor app-level integration, and switch to /rust or /zig when you need transport-level driver control.