Runtime support

Compare storage, concurrency, backup, and tool support across Oliphaunt SDKs.

The SDKs share PostgreSQL semantics but differ in runtime integration. Use this table to check a requirement before choosing a package.

CapabilityNative SDKsWASIX RustWASIX TypeScript
Default storageTemporary directoryMemory filesystemMemory filesystem
Persistent storageDirectory or application-data name, depending on SDK and modeManaged directoryIndexedDB/OPFS in browsers; directory on desktop
Parameterized queriesYesYesYes
Callback transactionsYesYesYes
Raw response streamingYesYesYes
Direct-query cancellationYesNo public APINo public API
Physical backup and restoreDirect and broker handlesYesYes; restore to persistent storage
Broker processRust, desktop TypeScript, iOS 26+, and AndroidNoNo
Local PostgreSQL endpointRust and desktop TypeScriptOne connected clientDesktop /server, one connected client
Independent client sessionsNative server onlyNoNo
Logical dump and SQL importOptional endpoint toolsOptional tools featureOptional tools package

The C ABI is a low-level binding interface and does not expose every high-level SDK helper. See its API reference.

Supported native platforms

PlatformRequirements
Linux x64/arm64 GNUProvides binaries requiring at most GLIBC_2.38 or GLIBCXX_3.4.30.
Direct macOS arm64 runtimeRequires macOS 11.0.
Android arm64-v8a and x86_64Minimum Android API level is 24.
Apple XCFrameworkContains macOS arm64, iOS device arm64, and iOS Simulator arm64 slices; minimum targets are macOS 14.0, iOS 17.0, and iOS Simulator 17.0.
Windows x64 MSVCShips with its required Visual C++ runtime libraries. Windows ARM64 is unavailable.

These are the runtime package requirements. Your language runtime or app framework may impose a higher minimum. Use the SDK quickstarts for integration requirements.

Query and transaction behavior

Typed query methods buffer their results. Raw response streaming is a PostgreSQL protocol interface, not a typed row stream or dedicated COPY reader/writer. Use it only when implementing a protocol-aware integration.

Async APIs keep the calling application responsive; they do not give a single embedded database multiple concurrent sessions. Use the native server with a PostgreSQL driver for independent sessions.

PostgreSQL tools

Native Rust and desktop TypeScript use the optional oliphaunt-tools or @oliphaunt/tools packages with a server connection string.

WASIX Rust enables pg_dump and non-interactive psql with its tools Cargo feature. WASIX TypeScript uses @oliphaunt/wasix-tools: pgDump supports root, direct, and Worker handles; psql supports desktop placements and browser Worker handles. Browsers cannot open TCP listeners.

Data movement

Physical backups require a compatible runtime within the same family. Use logical PostgreSQL dump/restore to move between native and WASIX. Install required extensions on the destination before importing data that depends on them.

For persistence and packaging examples, use your SDK guide. For mobile lifecycle decisions, see Ship a mobile database.