Skip to content
wrappers

wrappers

wrappers : Foreign data wrappers developed by Supabase

Overview

ID Extension Package Version Category License Language
8500
wrappers
wrappers
0.6.2
FDW
Apache-2.0
Rust
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-d-r
No
Yes
No
Yes
yes
no
Relationships
See Also
multicorn
odbc_fdw
jdbc_fdw
pgspider_ext

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PIGSTY
0.6.2
18
17
16
15
14
wrappers -
RPM
PIGSTY
0.6.2
18
17
16
15
14
wrappers_$v -
DEB
PIGSTY
0.6.2
18
17
16
15
14
postgresql-$v-wrappers -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
el8.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
el9.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
el9.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
el10.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
el10.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
d12.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
d12.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
d13.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
d13.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
u22.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
u22.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
u24.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
u24.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
u26.x86_64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
u26.aarch64
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
PIGSTY 0.6.2
Package Version OS ORG SIZE File URL
wrappers_18 0.6.2 el8.x86_64 pigsty 461.0 KiB wrappers_18-0.6.2-1PIGSTY.el8.x86_64.rpm
wrappers_18 0.6.2 el8.aarch64 pigsty 440.4 KiB wrappers_18-0.6.2-1PIGSTY.el8.aarch64.rpm
wrappers_18 0.6.2 el9.x86_64 pigsty 467.0 KiB wrappers_18-0.6.2-1PIGSTY.el9.x86_64.rpm
wrappers_18 0.6.2 el9.aarch64 pigsty 465.4 KiB wrappers_18-0.6.2-1PIGSTY.el9.aarch64.rpm
wrappers_18 0.6.2 el10.x86_64 pigsty 466.9 KiB wrappers_18-0.6.2-1PIGSTY.el10.x86_64.rpm
wrappers_18 0.6.2 el10.aarch64 pigsty 465.8 KiB wrappers_18-0.6.2-1PIGSTY.el10.aarch64.rpm
postgresql-18-wrappers 0.6.2 d12.x86_64 pigsty 372.6 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~bookworm_amd64.deb
postgresql-18-wrappers 0.6.2 d12.aarch64 pigsty 331.9 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~bookworm_arm64.deb
postgresql-18-wrappers 0.6.2 d13.x86_64 pigsty 372.4 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~trixie_amd64.deb
postgresql-18-wrappers 0.6.2 d13.aarch64 pigsty 331.7 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~trixie_arm64.deb
postgresql-18-wrappers 0.6.2 u22.x86_64 pigsty 411.3 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~jammy_amd64.deb
postgresql-18-wrappers 0.6.2 u22.aarch64 pigsty 388.5 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~jammy_arm64.deb
postgresql-18-wrappers 0.6.2 u24.x86_64 pigsty 406.6 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~noble_amd64.deb
postgresql-18-wrappers 0.6.2 u24.aarch64 pigsty 383.3 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~noble_arm64.deb
postgresql-18-wrappers 0.6.2 u26.x86_64 pigsty 403.7 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~resolute_amd64.deb
postgresql-18-wrappers 0.6.2 u26.aarch64 pigsty 381.6 KiB postgresql-18-wrappers_0.6.2-1PIGSTY~resolute_arm64.deb

Source

pig build pkg wrappers;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install wrappers;		# install via package name, for the active PG version

pig install wrappers -v 18;   # install for PG 18
pig install wrappers -v 17;   # install for PG 17
pig install wrappers -v 16;   # install for PG 16
pig install wrappers -v 15;   # install for PG 15
pig install wrappers -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION wrappers;

Usage

Sources:

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 Link header 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.
Last updated on