Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

84 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Oliphaunt

Native-first embedded PostgreSQL 18 for desktop, mobile, and WASIX applications.
Same engine, new name: pglite‐oxide is now Oliphaunt.

Oliphaunt is a family of peer SDKs and runtime products over the same embedded PostgreSQL model. Applications own their database roots, choose an honest runtime mode for their platform, and package only the exact PostgreSQL extensions they select.

Product model

Oliphaunt is a multi-product monorepo, not one repository-wide version:

  • liboliphaunt-native owns the PostgreSQL 18 C ABI runtime and native target carriers.
  • liboliphaunt-wasix owns portable WASIX runtime assets and host AOT carriers.
  • liboliphaunt-wasix-postmaster owns the concurrent Linux x64 GNU and macOS arm64 WASIX postmaster carrier with isolated PostgreSQL backends.
  • Native and WASIX own independent versions. A change to one does not select the other unless a declared directed compatibility dependency requires it.
  • Rust, Swift, Kotlin/Android, React Native, TypeScript, Rust WASIX, and WASIX TypeScript are separately versioned SDK products.
  • Broker and Node-direct helpers are separately versioned runtime products.
  • Every SQL extension in the catalog remains exactly selectable. PostgreSQL 18 contrib members share one logical artifact bundle whose native and WASIX carriers belong to their respective runtime releases; each external extension is a separately tagged, independently versioned product.

A product owns its SemVer, changelog, source identity, product tag, and GitHub release. Platform packages, ABI payloads, and size-split crates are carriers of that product; they use the product version and are not extra products.

First-release target envelope

The release target manifests currently declare:

Surface Declared release targets
Desktop native Linux x64 GNU, Linux arm64 GNU, macOS arm64, Windows x64 MSVC
Android arm64-v8a, x86_64
Apple iOS XCFramework carrier plus the declared macOS arm64 runtime carrier, delivered through SwiftPM and GitHub release assets
WASIX portable runtime plus AOT carriers for Linux x64/arm64 GNU, macOS arm64, and Windows x64 MSVC
WASIX postmaster sealed concurrent runtime carriers for Linux x64 GNU and macOS arm64

The first release intentionally does not claim macOS x64, Windows ARM64, Linux musl, Android 32-bit, or undeclared Apple architectures. A compiler, language, or runtime working on a broader platform is not a support promise; the explicit target manifest, publication catalog, and frozen release lock are the boundary.

Exact-extension support is target-specific too. An extension is publishable for a target only when its own target manifest and evidence declare that row. The public release reference publishes the enforced OS/API/ABI floors and distinguishes built package coverage from installed-app execution evidence, including the Android arm64 and physical-iOS boundaries.

SDK entry points

The declared public entry points are:

App surface Package entry point Distribution boundary
Rust/Tauri desktop oliphaunt Cargo and target-specific native artifact crates
Rust WASIX oliphaunt-wasix Cargo portable/AOT artifact crates
WASIX postmaster server oliphaunt-wasix-postmaster release launcher GitHub linux-x64-gnu or macos-arm64 sealed carrier archive
Swift Oliphaunt SwiftPM source tag and checksum-pinned release assets
Android dev.oliphaunt:oliphaunt-android and dev.oliphaunt.android Maven Central AAR, Gradle plugin/marker, and declared ABI carriers
React Native @oliphaunt/react-native npm package delegating runtime work to Swift and Kotlin
Node.js, Bun, and Deno @oliphaunt/ts npm
Browser, Node.js, Bun, and Deno WASIX @oliphaunt/wasix-ts npm
Native bindings liboliphaunt C ABI declared native runtime carriers

Kotlin common sources are compiled and tested on the JVM as development evidence, but only the Android facade is supported and published. The first Swift release starts at 0.6.0 because legacy unscoped SwiftPM tags already occupy 0.1.0 through 0.5.1; other new products start at 0.1.0.

Exact extensions

Extension selection uses exact PostgreSQL SQL names. There are no selection packs, aliases, or implicit groups; the contrib distribution bundle is only a carrier envelope. Selecting earthdistance may include its declared cube dependency; selecting vector does not pull unrelated extensions into the application.

The logical oliphaunt-extension-contrib-pg18 bundle has no independent version or release. Its native carriers follow liboliphaunt-native; its WASIX carriers follow liboliphaunt-wasix. Each carrier contains an exact, checksummed member inventory, but consumers stage only requested SQL members. External extension products own independent packaging SemVer. Their immutable upstream version/commit and compatible Oliphaunt runtime versions are recorded separately, so consumers must not infer compatibility from matching version numbers.

Development

Install the pinned toolchain once, then use Moon as the repository task surface:

proto upgrade 0.61.3
proto install
tools/dev/bootstrap-tools.sh
moon run dev-tools:doctor
moon run policy-tools:js-format-check policy-tools:rust-format-check
moon run :check :compile :format-check :lint :tools-compile --affected
moon run :test :unit :tools-unit --affected

For a product metadata change, also run the metadata gate:

moon run release-tools:metadata

Use release-tools:unit, policy-tools:unit, or ci-workflows:check when its corresponding machinery changes. Reserve release-tools:check for an exact release candidate.

The protected GitHub Release workflow owns candidate dry-runs and all public mutation. Local development commands do not publish packages, create tags, or promote releases.

Documentation

Oliphaunt is licensed under the terms recorded in LICENSE.

About

Embedded Postgres inside your apps and tests. No Docker, Node.js, or server. As easy as SQLite.

Topics

Resources

Contributing

Stars

99 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /