Skip to content

Download & Install

Install pg_mooncake (with bundled moonlink and duckdb_mooncake) and pg_duckdb using the pig package manager, source builds, or native RPM/DEB packages across 16 Linux distributions and PostgreSQL 14–18.

Pre-built native RPM and DEB packages for pg_mooncake (including the embedded moonlink ingestion engine and duckdb_mooncake DuckDB extension) are published across 16 Linux OS / CPU architecture targets (el8, el9, el10, d12, d13, u22, u24, u26 × x86_64 / aarch64) for PostgreSQL 14, 15, 16, 17, and 18 (80 binary packages across 5 PostgreSQL major versions).

PostgreSQL Table Access Method (USING mooncake) and columnstore mirror procedures (mooncake.create_table, create_snapshot, optimize_table, list_tables), built with pgrx 0.19.3 for PostgreSQL 14–18.

moonlinkv0.0.1

Rust real-time ingestion engine embedded inside pg_mooncake’s background worker (and available as a standalone HTTP/RPC server), managing logical replication, Arrow write buffers, Roaring deletion vectors, and Apache Iceberg v2 snapshots.

DuckDB 2.0 storage extension bundled with pg_mooncake into a local extension repository (mooncake.extension_repository), enabling pg_duckdb 1.2.0 to scan Moonlink tables with multi-file Parquet statistics pruning.


Quick Installation

1 · Install with PIG Package Manager (Recommended)

We recommend installing pg_mooncake and its required companion extension pg_duckdb with pig — the PostgreSQL package manager maintained by PGSTY. pig automatically detects your Linux distribution and CPU architecture, configures the upstream PGDG and Pigsty repositories, and installs both extensions in one command.

# 1. Install the pig CLI package manager
curl -fsSL https://repo.pigsty.io/pig | bash

# 2. Configure PGDG + Pigsty PGSQL repositories and update repo cache
pig repo add pgsql -u

# 3. Install pg_duckdb and pg_mooncake (auto-detects active PG version, or pass -v 18)
pig install pg_duckdb pg_mooncake
# 1. Install the pig CLI via the mainland China mirror
curl -fsSL https://repo.pigsty.cc/pig | bash

# 2. Configure repositories using the China CDN mirror (-r china)
pig repo add pgsql -u -r china

# 3. Install pg_duckdb and pg_mooncake (or specify PG major version with -v 18)
pig install pg_duckdb pg_mooncake
# Once the Pigsty APT repository is configured, install for your PostgreSQL major version (e.g. PG 18):
sudo apt-get update
sudo apt-get install -y \
  postgresql-18-pg-duckdb \
  postgresql-18-pg-mooncake
# Once the Pigsty YUM repository is configured, install for your PostgreSQL major version (e.g. PG 18):
sudo dnf install -y \
  pg_duckdb_18 \
  pg_mooncake_18

2 · Configure postgresql.conf & Enable Extension

pg_mooncake requires wal_level = logical (for Moonlink logical replication) and preloading both pg_duckdb and pg_mooncake in shared_preload_libraries:

-- 1. Configure logical replication, shared_preload_libraries, and DuckDB extension loading
ALTER SYSTEM SET wal_level = 'logical';
ALTER SYSTEM SET shared_preload_libraries = 'pg_duckdb,pg_mooncake';
ALTER SYSTEM SET duckdb.allow_community_extensions = 'true';
ALTER SYSTEM SET duckdb.allow_unsigned_extensions = 'true';

Restart PostgreSQL (sudo systemctl restart postgresql-18 or pig pg restart), then connect to your target database and enable the extension:

-- 2. Enable pg_mooncake (CASCADE automatically enables pg_duckdb 1.2.0)
CREATE EXTENSION IF NOT EXISTS pg_mooncake CASCADE;

3 · Container Images (Obsolete)

Warning

Obsolete — pending updates and maintenance. PGSTY has not yet published Docker or Kubernetes images for pg_mooncake 0.3.0. The historical upstream image below (mooncakelabs/pg_mooncake) shipped an older pre-0.3 build and is retained for reference only.

# Historical upstream container (PostgreSQL 17 + legacy pg_mooncake)
docker run --name mooncake-demo \
  -e POSTGRES_HOST_AUTH_METHOD=trust \
  -p 5432:5432 -d \
  mooncakelabs/pg_mooncake

4 · Component Repositories & Releases

Component Release Tag Role in Suite License Documentation GitHub Repository & Releases
pg_mooncake v0.3.0 PostgreSQL TAM (USING mooncake), procedures, & bgworker MIT Overview pgsty/pg_mooncake
duckdb_mooncake v0.0.2 DuckDB 2.0 storage extension for Moonlink & Parquet scans MIT duckdb_mooncake pgsty/duckdb_mooncake
moonlink v0.0.1 Real-time CDC, Arrow buffer, deletion vectors, & Iceberg writer BSL-1.1 (Exception) Moonlink Engine pgsty/moonlink
pg_duckdb v1.2.0 Required embedded DuckDB 2.0 execution engine for PostgreSQL MIT Getting Started pgext.cloud/e/pg_duckdb

pg_mooncake — Real-Time Columnstore & Iceberg Lakehouse

pg_mooncake (v0.3.0) adds real-time columnstore mirror tables (USING mooncake) to PostgreSQL, bundling moonlink v0.0.1 and duckdb_mooncake v0.0.2 alongside pg_duckdb v1.2.0.

Type Name / Pattern Version PostgreSQL Dependencies Repository License / Lang
EXT pg_mooncake 0.3.0 1817161514 pg_duckdb (1.2.0) PGEXT #2440 MIT
RPM pg_mooncake_$v 0.3.0 1817161514 pg_duckdb_$v PIGSTY Rust
DEB postgresql-$v-pg-mooncake 0.3.0 1817161514 postgresql-$v-pg-duckdb PIGSTY Rust

Availability Matrix (pg_mooncake)

Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
el8.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
el9.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
el9.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
el10.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
el10.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
d12.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
d12.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
d13.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
d13.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
u22.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
u22.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
u24.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
u24.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
u26.x86_64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0
u26.aarch64 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0 PIGSTY 0.3.0

Package Downloads (pg_mooncake)

Package Version OS ORG SIZE File URL
pg_mooncake_18 0.3.0 el8.x86_64 pigsty 19.1 MiB pg_mooncake_18-0.3.0-1PIGSTY.el8.x86_64.rpm
pg_mooncake_18 0.3.0 el8.aarch64 pigsty 17.6 MiB pg_mooncake_18-0.3.0-1PIGSTY.el8.aarch64.rpm
pg_mooncake_18 0.3.0 el9.x86_64 pigsty 17.8 MiB pg_mooncake_18-0.3.0-1PIGSTY.el9.x86_64.rpm
pg_mooncake_18 0.3.0 el9.aarch64 pigsty 17.6 MiB pg_mooncake_18-0.3.0-1PIGSTY.el9.aarch64.rpm
pg_mooncake_18 0.3.0 el10.x86_64 pigsty 17.6 MiB pg_mooncake_18-0.3.0-1PIGSTY.el10.x86_64.rpm
pg_mooncake_18 0.3.0 el10.aarch64 pigsty 17.4 MiB pg_mooncake_18-0.3.0-1PIGSTY.el10.aarch64.rpm
postgresql-18-pg-mooncake 0.3.0 d12.x86_64 pigsty 15.0 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-mooncake 0.3.0 d12.aarch64 pigsty 13.2 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-mooncake 0.3.0 d13.x86_64 pigsty 15.0 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-mooncake 0.3.0 d13.aarch64 pigsty 13.2 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-mooncake 0.3.0 u22.x86_64 pigsty 16.2 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-mooncake 0.3.0 u22.aarch64 pigsty 15.4 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-mooncake 0.3.0 u24.x86_64 pigsty 16.2 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~noble_amd64.deb
postgresql-18-pg-mooncake 0.3.0 u24.aarch64 pigsty 15.5 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~noble_arm64.deb
postgresql-18-pg-mooncake 0.3.0 u26.x86_64 pigsty 16.2 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~resolute_amd64.deb
postgresql-18-pg-mooncake 0.3.0 u26.aarch64 pigsty 15.5 MiB postgresql-18-pg-mooncake_0.3.0-1PIGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_mooncake_17 0.3.0 el8.x86_64 pigsty 19.1 MiB pg_mooncake_17-0.3.0-1PIGSTY.el8.x86_64.rpm
pg_mooncake_17 0.3.0 el8.aarch64 pigsty 17.6 MiB pg_mooncake_17-0.3.0-1PIGSTY.el8.aarch64.rpm
pg_mooncake_17 0.3.0 el9.x86_64 pigsty 17.8 MiB pg_mooncake_17-0.3.0-1PIGSTY.el9.x86_64.rpm
pg_mooncake_17 0.3.0 el9.aarch64 pigsty 17.6 MiB pg_mooncake_17-0.3.0-1PIGSTY.el9.aarch64.rpm
pg_mooncake_17 0.3.0 el10.x86_64 pigsty 17.6 MiB pg_mooncake_17-0.3.0-1PIGSTY.el10.x86_64.rpm
pg_mooncake_17 0.3.0 el10.aarch64 pigsty 17.3 MiB pg_mooncake_17-0.3.0-1PIGSTY.el10.aarch64.rpm
postgresql-17-pg-mooncake 0.3.0 d12.x86_64 pigsty 15.0 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-mooncake 0.3.0 d12.aarch64 pigsty 13.2 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-mooncake 0.3.0 d13.x86_64 pigsty 15.0 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-mooncake 0.3.0 d13.aarch64 pigsty 13.2 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-mooncake 0.3.0 u22.x86_64 pigsty 16.2 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-mooncake 0.3.0 u22.aarch64 pigsty 15.4 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-mooncake 0.3.0 u24.x86_64 pigsty 16.2 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~noble_amd64.deb
postgresql-17-pg-mooncake 0.3.0 u24.aarch64 pigsty 15.4 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~noble_arm64.deb
postgresql-17-pg-mooncake 0.3.0 u26.x86_64 pigsty 16.2 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~resolute_amd64.deb
postgresql-17-pg-mooncake 0.3.0 u26.aarch64 pigsty 15.5 MiB postgresql-17-pg-mooncake_0.3.0-1PIGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_mooncake_16 0.3.0 el8.x86_64 pigsty 19.1 MiB pg_mooncake_16-0.3.0-1PIGSTY.el8.x86_64.rpm
pg_mooncake_16 0.3.0 el8.aarch64 pigsty 17.6 MiB pg_mooncake_16-0.3.0-1PIGSTY.el8.aarch64.rpm
pg_mooncake_16 0.3.0 el9.x86_64 pigsty 17.8 MiB pg_mooncake_16-0.3.0-1PIGSTY.el9.x86_64.rpm
pg_mooncake_16 0.3.0 el9.aarch64 pigsty 17.6 MiB pg_mooncake_16-0.3.0-1PIGSTY.el9.aarch64.rpm
pg_mooncake_16 0.3.0 el10.x86_64 pigsty 17.6 MiB pg_mooncake_16-0.3.0-1PIGSTY.el10.x86_64.rpm
pg_mooncake_16 0.3.0 el10.aarch64 pigsty 17.3 MiB pg_mooncake_16-0.3.0-1PIGSTY.el10.aarch64.rpm
postgresql-16-pg-mooncake 0.3.0 d12.x86_64 pigsty 15.0 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-mooncake 0.3.0 d12.aarch64 pigsty 13.2 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-mooncake 0.3.0 d13.x86_64 pigsty 15.0 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-mooncake 0.3.0 d13.aarch64 pigsty 13.2 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-mooncake 0.3.0 u22.x86_64 pigsty 16.2 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-mooncake 0.3.0 u22.aarch64 pigsty 15.5 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-mooncake 0.3.0 u24.x86_64 pigsty 16.2 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~noble_amd64.deb
postgresql-16-pg-mooncake 0.3.0 u24.aarch64 pigsty 15.4 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~noble_arm64.deb
postgresql-16-pg-mooncake 0.3.0 u26.x86_64 pigsty 16.2 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~resolute_amd64.deb
postgresql-16-pg-mooncake 0.3.0 u26.aarch64 pigsty 15.5 MiB postgresql-16-pg-mooncake_0.3.0-1PIGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_mooncake_15 0.3.0 el8.x86_64 pigsty 19.1 MiB pg_mooncake_15-0.3.0-1PIGSTY.el8.x86_64.rpm
pg_mooncake_15 0.3.0 el8.aarch64 pigsty 17.5 MiB pg_mooncake_15-0.3.0-1PIGSTY.el8.aarch64.rpm
pg_mooncake_15 0.3.0 el9.x86_64 pigsty 17.8 MiB pg_mooncake_15-0.3.0-1PIGSTY.el9.x86_64.rpm
pg_mooncake_15 0.3.0 el9.aarch64 pigsty 17.6 MiB pg_mooncake_15-0.3.0-1PIGSTY.el9.aarch64.rpm
pg_mooncake_15 0.3.0 el10.x86_64 pigsty 17.6 MiB pg_mooncake_15-0.3.0-1PIGSTY.el10.x86_64.rpm
pg_mooncake_15 0.3.0 el10.aarch64 pigsty 17.3 MiB pg_mooncake_15-0.3.0-1PIGSTY.el10.aarch64.rpm
postgresql-15-pg-mooncake 0.3.0 d12.x86_64 pigsty 15.0 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-mooncake 0.3.0 d12.aarch64 pigsty 13.2 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-mooncake 0.3.0 d13.x86_64 pigsty 15.0 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-mooncake 0.3.0 d13.aarch64 pigsty 13.2 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-mooncake 0.3.0 u22.x86_64 pigsty 16.2 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-mooncake 0.3.0 u22.aarch64 pigsty 15.4 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-mooncake 0.3.0 u24.x86_64 pigsty 16.2 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~noble_amd64.deb
postgresql-15-pg-mooncake 0.3.0 u24.aarch64 pigsty 15.4 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~noble_arm64.deb
postgresql-15-pg-mooncake 0.3.0 u26.x86_64 pigsty 16.2 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~resolute_amd64.deb
postgresql-15-pg-mooncake 0.3.0 u26.aarch64 pigsty 15.5 MiB postgresql-15-pg-mooncake_0.3.0-1PIGSTY~resolute_arm64.deb
Package Version OS ORG SIZE File URL
pg_mooncake_14 0.3.0 el8.x86_64 pigsty 19.1 MiB pg_mooncake_14-0.3.0-1PIGSTY.el8.x86_64.rpm
pg_mooncake_14 0.3.0 el8.aarch64 pigsty 17.5 MiB pg_mooncake_14-0.3.0-1PIGSTY.el8.aarch64.rpm
pg_mooncake_14 0.3.0 el9.x86_64 pigsty 17.8 MiB pg_mooncake_14-0.3.0-1PIGSTY.el9.x86_64.rpm
pg_mooncake_14 0.3.0 el9.aarch64 pigsty 17.6 MiB pg_mooncake_14-0.3.0-1PIGSTY.el9.aarch64.rpm
pg_mooncake_14 0.3.0 el10.x86_64 pigsty 17.6 MiB pg_mooncake_14-0.3.0-1PIGSTY.el10.x86_64.rpm
pg_mooncake_14 0.3.0 el10.aarch64 pigsty 17.3 MiB pg_mooncake_14-0.3.0-1PIGSTY.el10.aarch64.rpm
postgresql-14-pg-mooncake 0.3.0 d12.x86_64 pigsty 15.0 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-mooncake 0.3.0 d12.aarch64 pigsty 13.2 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-mooncake 0.3.0 d13.x86_64 pigsty 15.0 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-mooncake 0.3.0 d13.aarch64 pigsty 13.2 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-mooncake 0.3.0 u22.x86_64 pigsty 16.2 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-mooncake 0.3.0 u22.aarch64 pigsty 15.4 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-mooncake 0.3.0 u24.x86_64 pigsty 16.2 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~noble_amd64.deb
postgresql-14-pg-mooncake 0.3.0 u24.aarch64 pigsty 15.4 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~noble_arm64.deb
postgresql-14-pg-mooncake 0.3.0 u26.x86_64 pigsty 16.2 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~resolute_amd64.deb
postgresql-14-pg-mooncake 0.3.0 u26.aarch64 pigsty 15.5 MiB postgresql-14-pg-mooncake_0.3.0-1PIGSTY~resolute_arm64.deb

Verification & Build Repositories

All RPM and DEB packages in the Pigsty PGSQL repository are GPG-signed and verified automatically by dnf / apt once configured via pig repo add pgsql. Every package is built transparently from open-source build specs:

Repository Description
pgsty/pig The pig CLI package manager for PostgreSQL and 600+ extensions
pgsty/rpm RPM build specifications for EL 8 / 9 / 10 (x86_64 & aarch64)
pgsty/deb DEB build specifications for Debian 12 / 13 & Ubuntu 22.04 / 24.04 / 26.04 (x86_64 & aarch64)
pgext.cloud Full PostgreSQL extension catalog, availability matrix, and repository mirrors

Table reader