celerp-postgres
PostgreSQL, pip installable. A full PostgreSQL distribution — the server and the client tools — delivered as a platform wheel. No apt/brew/installer, no Docker, no root, no compilation.
pip install celerp-postgres
That's the whole setup. You get unmodified PostgreSQL binaries on disk and a three-function API that tells you where they are. What you run with them is up to you.
Quickstart
Spin up a real PostgreSQL 17 database in a few lines — no drivers required beyond whatever you already use to talk to Postgres:
import subprocess, tempfile
from celerp_postgres import tool
data = tempfile.mkdtemp()
# One-time cluster init (no password prompts: local trust auth; libc collation
# keeps the package fully self-contained — ICU remains available per-collation)
subprocess.run([tool("initdb"), "-D", data, "-U", "postgres", "-A", "trust",
"--locale-provider=libc"], check=True)
# Start on localhost:54321
subprocess.run([tool("pg_ctl"), "-D", data, "-w",
"-o", "-c listen_addresses=127.0.0.1 -c port=54321",
"-l", f"{data}/log", "start"], check=True)
# ... connect with psycopg / asyncpg / SQLAlchemy / anything:
# postgresql://postgres@127.0.0.1:54321/postgres
subprocess.run([tool("pg_ctl"), "-D", data, "-w", "stop"], check=True)
On Linux/macOS you can skip TCP entirely and listen on a unix socket
(-c listen_addresses='' -c unix_socket_directories=<dir>), which keeps the database
invisible to the network.
What's in the box
Every wheel contains the complete distribution for its platform:
| Server | postgres, initdb, pg_ctl |
| Client tools | psql, pg_dump, pg_restore, pg_basebackup, createdb, … |
| Runtime | lib/ (shared libraries), share/ (initdb templates, timezone data) |
| Licenses | PostgreSQL COPYRIGHT + upstream LICENSE, inside the package |
C headers (include/) are not shipped — this package runs PostgreSQL; it isn't a
build-against-libpq SDK.
Supported platforms
| Wheel | Platform |
|---|---|
manylinux_2_34_x86_64 / _aarch64 |
Linux (glibc 2.34+) |
musllinux_1_2_x86_64 / _aarch64 |
Alpine / musl Linux |
macosx_26_0_x86_64, macosx_26_0_arm64 |
macOS 26+ (upstream binaries target current macOS) |
win_amd64 |
Windows x64 |
Any CPython ≥ 3.9. Wheels only — there is deliberately no sdist, because a source install could not contain the binaries and would silently produce a broken package.
Every wheel is fully self-contained: the required shared libraries (openssl, icu,
libxml2, compression codecs, …) ship inside the package, so it works on minimal images
like python:slim and python:alpine with no system packages. A few niche server
extensions that would drag in huge or host-specific dependencies (plpython3u,
JIT/llvmjit, uuid-ossp, xml2) are not included.
API
Three symbols; that's the entire surface:
from celerp_postgres import POSTGRES_VERSION, bin_dir, tool, icu_data_dir
POSTGRES_VERSION # "17.10.0" — the bundled PostgreSQL version (== package version)
bin_dir() # ".../site-packages/celerp_postgres/pginstall/bin"
tool("pg_dump") # full path to a tool; raises FileNotFoundError if absent
icu_data_dir() # musl wheels only: set ICU_DATA to this when spawning the
# server (Alpine's ICU reads data from an external file);
# None on every other platform
No lifecycle magic, no hidden daemons, no atexit hooks. You own the process — which is exactly what makes this composable with whatever supervisor, test fixture, or app framework you already have.
Why you'd want this
- Test suites that need a real PostgreSQL without Docker, CI services, or a
system install —
pip install, boot per-session, throw away. - Local-first / desktop apps that embed a private database next to the app's data directory instead of asking users to install a server.
- CLI tools and data scripts that need
pg_dump/pg_restore/psqlat a known, version-pinned path regardless of what the host has onPATH. - Air-gapped and locked-down environments — everything arrives through pip's normal, hash-verifiable channel; nothing is downloaded at runtime.
- Teaching, notebooks, demos — a real database with zero setup instructions.
Versioning & updates
The package version is the PostgreSQL version (17.10.0 ships PostgreSQL 17.10).
New PostgreSQL point releases are published as new package versions shortly after the
upstream release train; pin >=17.10,<18 to receive security patches within the major
you initialized your data directory with. Repackaging-only fixes use post releases
(17.10.0.post1). PostgreSQL major upgrades change the on-disk pgdata format —
moving 17 → 18 requires a pg_dump/pg_restore migration, as with any PostgreSQL
installation.
How it's built (and why you can trust it)
Wheels repackage the excellent
theseus-rs/postgresql-binaries
release archives — the same binary source used across the Rust embedded-postgres
ecosystem. Every archive's sha256 is pinned in this repository and verified at
build time (never trusted from a live sidecar), the binaries are shipped unmodified,
and every release is gated on CI that boots a real cluster on each platform and runs a
pg_dump → pg_restore roundtrip before anything reaches PyPI. Publishing uses PyPI
trusted publishing (OIDC) — no long-lived credentials exist.
License
- Package code (accessor module + build tooling): MIT.
- PostgreSQL binaries: PostgreSQL License
— permissive, OSI-approved; the
COPYRIGHTand upstreamLICENSEnotices ship inside the package atcelerp_postgres/pginstall/.
Credits: the PostgreSQL Global Development Group, and theseus-rs for the portable builds.
Maintained by the Celerp team.
Metadata
Release files for celerp-postgres 17.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| celerp_postgres-17.10.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| celerp_postgres-17.10.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| celerp_postgres-17.10.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| celerp_postgres-17.10.0-py3-none-manylinux_2_34_x86_64.whl | Python 3 | none | Linux glibc 2.34+ x86-64 | Details |
| celerp_postgres-17.10.0-py3-none-manylinux_2_34_aarch64.whl | Python 3 | none | Linux glibc 2.34+ ARM64 | Details |
| celerp_postgres-17.10.0-py3-none-macosx_26_0_x86_64.whl | Python 3 | none | macOS 26.0+ x86-64 | Details |
| celerp_postgres-17.10.0-py3-none-macosx_26_0_arm64.whl | Python 3 | none | macOS 26.0+ ARM64 | Details |
Total release size: 141.8 MB
Release files / celerp_postgres-17.10.0-py3-none-win_amd64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-win_amd64.whl |
|---|---|
| Size | 48.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c05f6874dd98f7fcb3e9e44ac3fa68ce375ca634f4010168bf20f65816f178a5
|
|
BLAKE2b-256 checksum How to use checksums |
1996bcb9055445f641cb54fe589a7911fa79ca71e8504d959a5256b8687eb5a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency logRelease files / celerp_postgres-17.10.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 19.1 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
865d2e25161c604ed082b020d866b43e749085fc9c3eaa47a26331c026c9099a
|
|
BLAKE2b-256 checksum How to use checksums |
550b111b5b15b4f635216f8e3621c1cf63ab1710260d33d4bf4ef26ea59372c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency logRelease files / celerp_postgres-17.10.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 19.4 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
a5508bd87090901552698c88e506bf2489da897a96871d2300639a7baed5f0a3
|
|
BLAKE2b-256 checksum How to use checksums |
e20c1ef05cc8ea764c2310fa53fd26e3e981b7f73b8540c1ff506f61d4ca90dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency logRelease files / celerp_postgres-17.10.0-py3-none-manylinux_2_34_x86_64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 16.1 MB |
| Tags | Linux glibc 2.34+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ece9e687eb907cca6a384823be2aeb40d357ce1680d1e4fdeddfdd06aacca80d
|
|
BLAKE2b-256 checksum How to use checksums |
694359e625a9589efedbc6edc30b98b1f24ddb5ffd88416f1258b297633d0480
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency logRelease files / celerp_postgres-17.10.0-py3-none-manylinux_2_34_aarch64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 15.6 MB |
| Tags | Linux glibc 2.34+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
08d60bd8e12a985335d271ddda12bba12d875298edb5078afc00e99fe75ec142
|
|
BLAKE2b-256 checksum How to use checksums |
0bb5ce8fd22f16b3e40ba3b97671c1b90c52765268fc606d860bf68e740d203b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency logRelease files / celerp_postgres-17.10.0-py3-none-macosx_26_0_x86_64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-macosx_26_0_x86_64.whl |
|---|---|
| Size | 12.0 MB |
| Tags | Python 3 macOS 26.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
b03eb28bbbcc6db820171298e2f94b952f4b9b082a43d1125fefe5eb44013435
|
|
BLAKE2b-256 checksum How to use checksums |
384d0225dcec4dbe7de9ea1f01edfac9fb4541c4b5d1d7366a887ccf5d6be71f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency logRelease files / celerp_postgres-17.10.0-py3-none-macosx_26_0_arm64.whl
| Download URL | celerp_postgres-17.10.0-py3-none-macosx_26_0_arm64.whl |
|---|---|
| Size | 11.6 MB |
| Tags | Python 3 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5d974fa04ec3b74efdebf8080b26450167bc212c84d41836320deb4cdda33307
|
|
BLAKE2b-256 checksum How to use checksums |
b5d01c33aae5aef493f5244f0f4fe60b090ab3adb9b73bf359bd00405b862daf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.
Transparency log