Automic VaultAutomic Vault

brew

Install ephemeralpg with Homebrew, Nix

Run tests on an isolated, temporary Postgres database. Version 3.4 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install ephemeralpg

local Homebrew formula metadata

Linux

Nixverified · 92%
nix profile install nixpkgs#ephemeralpg

nixpkgs package indexes · pkgs/by-name/ep/ephemeralpg/package.nix · source: api.github.com

overview

Package summary

Run tests on an isolated, temporary Postgres database

Commands and aliases

  • getsocket
  • pg_tmp

history

Project history and usage

Ephemeral PostgreSQL is a compact test utility centered on `pg_tmp`, a shell script that starts isolated temporary PostgreSQL databases. It gives test suites a real PostgreSQL server without making developers keep a long-lived database around or substitute SQLite for PostgreSQL behavior.

Project history

The NEWS file records version 1.0 on January 7, 2015 as an initial Bitbucket release and describes it as a cross-platform implementation in fewer than one hundred lines of code. Later releases added TCP binding through the bundled `getsocket` utility, better cleanup behavior, PostgreSQL-version compatibility fixes, extra server options, and a test framework.

The project moved hosting from Bitbucket to GitHub in version 2.8 on September 25, 2019. Its public project page was still maintained in 2025 and documents `pg_tmp` as a compact shell script for unit and integration testing with PostgreSQL in any language.

Adoption history

ephemeralpg is not a mass-market database package, but it has a clear testing niche: teams that need PostgreSQL-specific behavior in tests without shared state. Homebrew and Nix packaging make the tool easy to install in developer workstations and CI images.

How it is used

A common workflow is `uri=$(pg_tmp)` followed by running `psql` or an application test suite against that connection URI. The tool can start a database on a random TCP port, keep it alive for a specified window, pass server options such as disabling autovacuum, and garbage-collect temporary databases automatically.

The project page explains several performance techniques: avoiding fully sequential init/start/stop work, disabling runtime fsync, spinning for the first connection, pre-initializing a background database under `/tmp`, and shutting down asynchronously.

Why package nerds care

ephemeralpg is interesting because it solves a common developer-tools problem with shell and standard PostgreSQL tools instead of a service daemon. It is small, inspectable, and very package-manager-friendly: install it, call `pg_tmp`, and get a disposable database URI.

Timeline

  • 2015-01-07: Version 1.0 initially released on Bitbucket.
  • 2015-12-12: Version 1.7 added a more extensive `make test` framework.
  • 2016-03-29: Version 2.0 allowed temporary directories with initdb/start/stop arguments.
  • 2019-09-25: Version 2.8 moved hosting from Bitbucket to GitHub.
  • 2025-02-06: Version 3.4 adjusted startup behavior and Mac OS locale handling.

Related projects

  • ephemeralpg depends on the standard PostgreSQL toolchain, especially `initdb`, `pg_ctl`, `postgres`, and `psql`, and includes helper utilities such as `getsocket` plus optional contrib scripts.

security posture

Risk level: blue

broad file, network, media, or database tool signal.

Risk classifier

blue risk · medium confidence · tool

Why

  • broad file, network, media, or database tool signal

Signals

  • text:database

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 8 platform targets.
  • Installs with 1 runtime dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
getsocketcliglobal executable
pg_tmpcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version3.4
manager updated
local dataok
upstreamnot checked
latest detectednot detected

https://eradman.com/ephemeralpg/

  • infoNo package-manager update timestamp was available.low confidence
  • infoRelease/tag comparison is only available for GitHub repositories.https://eradman.com/ephemeralpg/none confidence

install metadata

Package metadata

Package keybrew:ephemeralpg
Version3.4
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/ephemeralpg
Homepagehttps://eradman.com/ephemeralpg/
Repositoryhttps://github.com/eradman/ephemeralpg
Upstream docshttps://eradman.com/ephemeralpg
LicenseISC
Source archivehttps://eradman.com/ephemeralpg/code/ephemeralpg-3.4.tar.gz
Dependencieslibpq
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameephemeralpg
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

ephemeralpg

nix profile install nixpkgs#ephemeralpg
  • normalized package name match
  • Matched by: Ephemeralpg
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/ep/ephemeralpg/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment