Skip to content

Releases: pgrundev/pgx

PGX v0.1.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 20:12
d62547d

PGX v0.1.0

The first stable release of PGX: a self-contained, relocatable, PostgreSQL 18
compatible runtime for local development, CI and disposable databases. No
system PostgreSQL required. Same engine lineage as v0.1.0-beta.1 (PostgreSQL
18.6 compatible); the changes since the beta are documentation and the
pgx.dev/install endpoint.

Install

curl -fsSL https://pgx.dev/install | sh
pgx run                             # a ready `app` database in one step
pgx clone app agent-001 --ttl 5m    # a disposable branch that auto-expires

Or download the tarball for your platform below, verify its SHA-256 against
checksums.txt, and extract it; bin/pgx is relocatable.

Platforms

Platform Artifact
Linux x86-64 pgx-0.1.0-linux-amd64.tar.gz
Linux arm64 pgx-0.1.0-linux-arm64.tar.gz
macOS arm64 pgx-0.1.0-darwin-arm64.tar.gz

Every artifact is built from main by CI, self-contained (no Homebrew or
distro PostgreSQL libraries), and smoke-tested from a clean home on all three
platforms (pgx run, pgx clone --ttl, automatic TTL expiry, restart with
data intact). XML functions and ICU collations use the host's libxml2 and ICU
when present.

Verified in this release

  • 1,000 TTL branches of one database in one runtime on macOS arm64: 54 ms per
    clone (p50), engine RSS flat at ~34 MB, ~140 MB of real disk for all 1,000
    clones (APFS block cloning), 100 concurrent sessions on 100 branches with
    0 errors, all 1,000 branches auto-expired in 92 s.
  • Full validation matrix (unit, lifecycle, SQL, compatibility vs PostgreSQL
    18.6, crash recovery, isolation, storage, concurrency, stress, application
    fixtures): docs/pgx/local-dev/validation-report.md.

Known limitations

These are open and tracked. None of them affects the primary use case, a
single-user developer machine or CI runner.

  • pgx init ignores PGX_PORT and PGX_DURABILITY (#16). The docs say
    init reads them; it does not. Use pgx init --port N --durability full
    explicitly, or use pgx run / pgx serve, which do honour the variables.
  • Shared hosts: the Unix socket is open to every local user (#17, F-S1).
    pg_hba trusts local socket connections and the run directory is
    world-traversable, so another user on the same machine can open a superuser
    session. PGX is designed for single-user machines and CI runners; do not run
    it on a shared multi-user host until this is fixed.
  • Memory limits are not enforced on parallel workers (#17, F-S3). A
    session can raise max_parallel_workers_per_gather and run a query whose
    workers exceed the configured limits. Treat the per-session limit as
    best-effort in this release.
  • Artifacts are checksummed, not signed (#17, F-S2). The installer
    verifies the SHA-256 published with the release; it detects corruption, not
    a compromised release. Signed artifacts and build provenance are planned.
  • Regression status. The latest nightly compatibility run reports 2 of 231
    PostgreSQL regression tests with semantic output differences; the README
    figure ("0 result differences") predates that run and will be corrected.
  • ZFS is untested in this release. Copy-on-write clones are verified on
    APFS (macOS). On ext4 (the Linux CI runners) clones fall back to a full file
    copy, which is correct but not shared. ZFS, btrfs and XFS reflink paths
    follow the same copy_file_range mechanism but have not been exercised on a
    real host yet.
  • TTL supervisor does not self-heal (#7). If the cleanup supervisor dies
    while the engine keeps running, expired branches are not removed until the
    next pgx start/pgx run. Nothing is deleted wrongly; cleanup only pauses.

Full audit with every finding and the planned fixes: #17.

v0.1.0-beta.1

v0.1.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Oct 05:04
4175767
PGX v0.1.0-beta.1 — first public beta (prerelease)