[HN Gopher] Show HN: Pgxman - npm for Postgres extensions
___________________________________________________________________
Show HN: Pgxman - npm for Postgres extensions
pgxman is npm for Postgres extensions, simplifying the discovery
and use of extensions so you can easily enhance your applications.
Installing and updating Postgres extensions is an uphill battle.
You're left searching for the right build tools and grappling with
often unclear and incomplete compiling instructions to even try one
out. But with pgxman, we've streamlined the process to one simple
step: pgxman install [extension name]. For example, to build
parquet_s3_fdw manually, you'd need to: 1. Download the
parquet_s3_fdw source code; 2. Figure out how to build it by
looking at README. When unclear, look at the source code how to
build it. The README of parquet_s3_fdw says it needs libarrow,
libparquet & aws_sdk. Readme doesn't say where to get them. 3.
Make sure all dependencies are available to build the project.
Either install them from apt, if available, or build them manually
if not. For parquet_s3_fdw aws_sdk has to be built manually -- it's
not available in any apt repos 4. Build the extension targeting
the correct OS, CPU architecture and Postgres version. 5.
Determine and build to the right path /usr/lib/postgresql/15/lib -
otherwise, Postgres wouldn't be able to find them. 6. Repeat
across all relevant Postgres instances. Hopefully, these Postgres
versions are recent or else you'll have to update postgres, set
maintenance window, etc. * Added friction: Since parquet_s3_fdw is
not designed to use in a cloud environment, and we forked it to
make changes to make it possible to use. Using pgxman, you can
just do: pgxman install s3_parquet_fdw pgxman
integrates with your system package manager, ensuring the correct
versions are installed without extra packages from any shared
dependencies between extensions. pgxman's automated build system
creates [APT] packages for each Postgres version, platform, and OS
supported by the extension. Extensions are built from a "buildkit"
formula, written in YAML, and are contributed through GitHub. To
install pgxman, you can do brew install
pgxman/tap/pgxman or, if you don't mind pipe-to-shell,
curl -sfl https://install.pgx.sh | sh - If you'd like to
learn more, we have an extensive blog post here:
https://www.hydra.so/blog-posts/the-design-of-postgres-exten....
Author : coatue
Score : 24 points
Date : 2023-11-29 19:08 UTC (3 hours ago)
(HTM) web link (pgxman.com)
(TXT) w3m dump (pgxman.com)
| lfittl wrote:
| Other related projects:
|
| * PGXN (https://pgxn.org/ - the original Postgres community
| extension repository, though more "old school")
|
| * Trunk by Tembo (https://github.com/tembo-io/trunk - very
| similar to pgxman, but using the more liberal Postgres BSD-style
| license)
|
| Additionally its important to mention that many popular
| extensions are already packaged as part of the Postgres YUM and
| Apt repositories (https://wiki.postgresql.org/wiki/Apt and
| https://yum.postgresql.org/).
|
| I would generally recommend using the upstream repository
| packages directly, since they are tested/updated with each major
| release, and their maintainers are proactive in reaching out to
| extension maintainers that need to update their extension due to
| upstream code changes.
___________________________________________________________________
(page generated 2023-11-29 23:01 UTC)