wrappers
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
wrappers | 0.6.2 | FDW | Apache-2.0 | Rust |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 8500 | wrappers | No | Yes | No | Yes | No | Yes | - |
| Related | multicorn odbc_fdw jdbc_fdw pgspider_ext |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.6.2 | 1817161514 | wrappers | - |
| RPM | PIGSTY | 0.6.2 | 1817161514 | wrappers_$v | - |
| DEB | PIGSTY | 0.6.2 | 1817161514 | postgresql-$v-wrappers | - |
Build
You can build the RPM / DEB packages for wrappers using pig build:
pig build pkg wrappers # build RPM / DEB packages
Install
You can install wrappers directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install wrappers; # Install for current active PG version
pig ext install -y wrappers -v 18 # PG 18
pig ext install -y wrappers -v 17 # PG 17
pig ext install -y wrappers -v 16 # PG 16
pig ext install -y wrappers -v 15 # PG 15
pig ext install -y wrappers -v 14 # PG 14
dnf install -y wrappers_18 # PG 18
dnf install -y wrappers_17 # PG 17
dnf install -y wrappers_16 # PG 16
dnf install -y wrappers_15 # PG 15
dnf install -y wrappers_14 # PG 14
apt install -y postgresql-18-wrappers # PG 18
apt install -y postgresql-17-wrappers # PG 17
apt install -y postgresql-16-wrappers # PG 16
apt install -y postgresql-15-wrappers # PG 15
apt install -y postgresql-14-wrappers # PG 14
Create Extension:
CREATE EXTENSION wrappers;
Usage
Sources:
- Wrappers v0.6.2 README
- Official FDW documentation
- v0.6.2 release
- MongoDB FDW documentation
- Security guidance
wrappers is both a Rust framework for writing PostgreSQL foreign data wrappers and a packaged collection of Supabase-maintained FDWs. A single extension installs many wrapper implementations, then each foreign server chooses the specific wrapper type it needs.
CREATE EXTENSION wrappers;
Typical Workflow
Create a server for one wrapper, then expose remote data through foreign tables:
CREATE SERVER stripe_server
FOREIGN DATA WRAPPER stripe_wrapper
OPTIONS (
api_key_id 'stripe_api_key',
api_url 'https://api.stripe.com/v1/'
);
CREATE FOREIGN TABLE stripe_customers (
id text,
email text,
name text,
description text,
created timestamp,
attrs jsonb
)
SERVER stripe_server
OPTIONS (
object 'customers',
rowid_column 'id'
);
What It Covers
Upstream ships wrappers for databases and services such as BigQuery, ClickHouse, DuckDB, DynamoDB, MySQL/Doris, Redis, S3, S3 Vectors, Stripe, Snowflake, Slack, Notion, OpenAPI, Infura, and many others. Read and write support varies by wrapper, but pushdown for WHERE, ORDER BY, and LIMIT is a core framework feature.
Version 0.6.2
The v0.6.2 release keeps the same extension model and adds:
- a MongoDB FDW with read and write support
- session-variable credentials for per-request authentication in WASM wrappers
- RFC 8288
Linkheader pagination for the OpenAPI FDW - runtime, dependency, and wrapper-specific fixes documented in the release notes
Wrapper-specific pages remain the authority for server options, foreign-table columns, pushdown, and write support.
Caveats
- Wrapper-specific options, supported objects, and write support differ widely; check the official catalog page for the exact FDW you use.
- The docs warn that logical restores can fail when materialized views depend on foreign tables, so avoid that pattern or rely on physical backups.
- Foreign tables do not provide a security boundary by themselves. Keep them in private schemas, grant access deliberately, use the least-privileged remote credentials available, and apply Row Level Security to local tables that expose or cache remote data.
- Keep API keys and tokens in the supported secret store or per-request credential mechanism instead of embedding them in SQL checked into source control.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.