PGEXT helps you discover PostgreSQL extensions, read their usage guides, and find packages for your PostgreSQL version and Linux system. Browse the catalog at pgext.cloud.
This repository contains the catalog data and the Go application behind
PGEXT.CLOUD. The pgext CLI collects APT/RPM repository metadata and builds
package availability matrices. pgext serve exposes the catalog as a web
application and JSON query API, with web assets embedded in the binary and
data stored in PostgreSQL.
Catalog snapshot, 2026-10-29:
| Layer | Current scope |
|---|---|
| Extension directory | 2,703 entries, including packaged, source, and provider-specific extensions |
| Packaged catalog | 620 records: 617 marked available and 3 retained as removed |
| Categories | 16, covering spatial data, vectors, search, analytics, operations, security, and more |
| PostgreSQL targets | 14, 15, 16, 17, 18 |
| Linux targets | 16 OS/architecture combinations: EL 8/9/10, Debian 12/13, Ubuntu 22.04/24.04/26.04; x86_64 and aarch64 |
The broad directory lives in pgext.universe; the packaged
baseline lives in pgext.extension. The latter groups its
620 records under 512 package names, including PostgreSQL contrib modules.
A package can provide several extensions. Availability varies by PostgreSQL
major version, OS, architecture, and repository; consult the
package matrix for a specific target.
Use the catalog to:
- Find extensions by category, license, language, or PostgreSQL version.
- Plan installation with dependency, preload, and compatibility information.
- Choose packages from PGDG and Pigsty, with versions, checksums, and download links.
- Read usage guides in English and Chinese, with links to upstream sources.
The JSON query API is available without running a local instance:
curl 'https://pgext.cloud/api/v1/ext?q=vector'
curl 'https://pgext.cloud/api/v1/ext/vector/files?pg=18&os=el9.x86_64'
curl 'https://pgext.cloud/api/v1/matrix?repo=pgdg'See the server reference for endpoints, filters, and server options.
Download a binary for Linux or macOS (amd64/arm64), or a Linux deb/rpm
package, from the releases, and put
pgext on your PATH. To build from source, use Go 1.27.3 or later:
git clone https://github.com/pgsty/pgext.git
cd pgext
go build -o pgext .For a source build, use ./pgext in the examples below.
With PostgreSQL running, create a database and initialize the catalog using
a role that can create the pgext schema. Initialization loads the catalog
shipped with the binary, downloads repository indexes, and builds the package
matrix.
createdb data
export PGURL='postgres:///data'
pgext init
pgext serveOpen http://localhost:8432. PGURL selects the database;
pgext serve --db overrides it. For example, to use an existing database on
the local /tmp socket and listen on port 8080:
pgext serve --db 'postgresql://postgres@%2Ftmp:5432/data' --listen :8080pgext init # load the bundled catalog and fetch package data
pgext serve # serve the web UI and JSON API
pgext status # show catalog and repository status
pgext reload # fetch repository metadata and rebuild the matrix
pgext rescan # scan local Pigsty repositories and rebuild it
pgext fetch # fetch APT/RPM repository metadata
pgext scan # scan local repository metadata
pgext parse # parse cached metadata and rebuild the matrix
pgext recap # rebuild package availability from parsed data
pgext ext <name> # show extension metadata
pgext pkg <name> # show a package availability matrix
pgext bin <name> -p 18 -o el9 # show binary packages and download URLs
pgext gen all # run content generators
pgext gen lint # lint bilingual usage stubs
pgext pgxn # export PGXN metadata to standalone reports
Run pgext help <command> for command-specific options. pgext reload reads
the current repository manifests, validates and parses their metadata, and
publishes the parsed package tables and availability matrix atomically.
go test ./... # Go unit tests
make check-stubs # validate usage Markdown
make build # build the Hugo siteThe Hugo site uses Hugo Extended 0.168.0 and OINK v1.4.0.
make dev previews it at http://localhost:1313 using a
sibling ../oink checkout; set THEME_DIR to use another local theme checkout.
Catalog snapshots and schema definitions live in db/. English and Chinese
usage sources live in stub/ and stub-zh/, and are loaded separately into
pgext.doc with bin/load-stub. Follow the
stub documentation SOP for source review,
validation, and loading.