Oliphaunt

Start With Oliphaunt

Choose an Oliphaunt SDK, open an embedded PostgreSQL root, and run the first query.

Oliphaunt is embedded PostgreSQL for apps. Install the SDK for your app target, open a PostgreSQL root inside app-owned storage, run SQL, and select only the extensions your app ships.

This page is the shortest tutorial path. Pick one app target, prove the runtime with one query, then move into the SDK, runtime, extension, or storage page that matches the next decision.

Start In One App Target

Start in one app target

The first path is short: install, open, query, verify, then use the platform page for lifecycle, packaging, and data movement.

  1. 01

    Pick the SDK

    Choose the package for the app users install: Rust, Swift, Kotlin, React Native, TypeScript, WASM, or C ABI.

  2. 02

    Install through the platform tool

    Use Cargo, SwiftPM/Xcode, Gradle, npm, Expo, or the released C artifacts. Native apps rebuild when runtime assets or selected extensions change.

  3. 03

    Open an app-owned root

    Use persistent app storage for user data and a temporary root for tests. A root is a PostgreSQL directory managed through SDK APIs.

  4. 04

    Run SQL and verify capabilities

    Run SELECT 1, read capabilities(), and create only the extensions selected for the app artifact.

First Query Shape

Every SDK uses ecosystem-native syntax. The application flow stays the same: choose storage, select a runtime mode, select exact extensions, open, query, and close or detach through the SDK lifecycle.

First query shape

Same storage, mode, extension, query, and lifecycle path across SDK syntax.

  1. 01

    Storage

  2. 02

    Mode

  3. 03

    Extensions

  4. 04

    Query

  5. 05

    Lifecycle

TypeScript

@oliphaunt/ts
const db = await Oliphaunt.open({
  root: 'main.oliphaunt',
  engine: 'nativeDirect',
  extensions: ['vector'],
});

const rows = await db.query('select 1 as ready');
await db.close();

Rust

oliphaunt
let db = Oliphaunt::builder()
    .root("main.oliphaunt")
    .mode(RuntimeMode::NativeDirect)
    .extension("vector")
    .open()
    .await?;

db.query("select 1 as ready").await?;
db.close().await?;

Swift

Oliphaunt
let db = try await Oliphaunt.open(
  root: .appStorage("main.oliphaunt"),
  mode: .nativeDirect,
  extensions: ["vector"]
)

try await db.query("select 1 as ready")
try await db.close()

Use the SDK page for your app target when you need platform setup, native build consequences, lifecycle hooks, extension artifacts, backup, restore, and troubleshooting.

After The First Query

Use these pages when the first runtime path works and the app needs the next production decision.

On this page