Oliphaunt

Capability Matrix

Compare SDK mode support, runtime boundaries, protocol features, extensions, backup, restore, and client compatibility.

Use this page to choose the right SDK and runtime mode. Oliphaunt SDKs are peers: Rust is for Tauri and native Rust apps, Swift is for iOS and macOS, Kotlin is for Android, React Native uses the Swift and Kotlin SDKs underneath, TypeScript is for desktop JavaScript runtimes, and WASM is the WebAssembly runtime family.

Capability checks return explicit errors when a feature is absent. Use them to show only the modes, controls, and workflows the installed SDK advertises for the target.

Read capabilities before enabling a workflow

Capabilities describe what the installed SDK and runtime advertise on this target.

Direct mode

one serialized session

Use it when app code owns one embedded PostgreSQL root and latency matters.

Broker mode

helper-owned roots

Use it when a desktop app wants process ownership, recovery, or multiple roots.

Server mode

independent clients

Use it for pools, ORMs, psql, pg_dump, and PostgreSQL connection strings.

Extension artifacts

exact selection

Use selected SQL extension names to decide what enters the app artifact.

SDKs

SDKPrimary useRuntime ownerNotes
C ABIBinding authorsliboliphauntLow-level raw protocol and lifecycle boundary
RustTauri and native Rust appsRust SDKFull direct, broker, and server model where supported
SwiftiOS and macOS appsSwift SDKAsync Apple API over the native runtime
KotlinAndroid appsKotlin SDKCoroutine Android API over the native runtime
React NativeExpo and New Architecture appsSwift/KotlinTypeScript API, config plugin, TurboModule/JSI transport
TypeScriptNode.js, Bun, DenoTypeScript SDKDesktop JavaScript API over native helpers; direct Tauri JavaScript integration is planned
WASMWebAssembly/WASIX appsWASM SDKSeparate runtime family with WASM-owned assets

Runtime Modes

ModeBest forSession modelSDK availability
Native directLowest-latency embedded databaseOne serialized physical sessionRust, Swift, Kotlin, React Native through Swift/Kotlin, C ABI
Native brokerDesktop apps that need process isolation or multiple rootsHelper process owns roots and sessionsRust first; TypeScript via helper integration where supported
Native serverpsql, pg_dump, ORMs, pools, independent clientsPostgreSQL-compatible server processRust first; other SDKs only when they advertise support
WASMWebAssembly/WASIX deploymentsWASM runtime session modelWASM SDK

Mobile direct mode has one resident backend per app process and one physical session. It is same-root logically reopenable inside that process. Use server mode only where the SDK reports true server support. Mobile direct mode is not a broker/server alias; it is not a crash-isolated server and does not provide independent concurrent PostgreSQL client sessions.

Feature Support

FeatureRustSwiftKotlinReact NativeTypeScriptWASM
Open persistent rootYesYesYesVia Swift/KotlinYesYes
Temporary rootYesYesYesVia Swift/KotlinYesYes
Simple SQL helpersYesYesYesYesYesYes
Raw protocol bytesYesYesYesYesYesYes
Chunked protocol streamingYesYes where reportedYes where reportedJSI ArrayBuffer stream where reportedYes where reportedYes where reported
TransactionsYesYesYesYesYesYes
Exact extension selectionYesYesYesVia Swift/KotlinYesYes
Physical backup/restoreYesYesYesVia Swift/KotlinYesYes
PostgreSQL-compatible serverYesWhere advertisedWhere advertisedWhere advertised through Swift/KotlinVia supported helper pathWASM-specific
Independent concurrent clientsServer mode onlyServer mode only where availableServer mode only where availableServer mode only where availableServer mode only where availableRuntime-specific

Choosing A Mode

Choose native direct when app code owns one embedded database and latency is the priority.

Choose native broker when a desktop app needs stronger isolation, multiple database roots, crash recovery, or a long-lived helper process.

Choose native server when compatibility with existing PostgreSQL clients matters more than embedding latency.

Choose WASM when the deployment target is WASIX/WebAssembly. Choose a native SDK when the app ships a liboliphaunt runtime.

On this page