supabase-wrappers-macros

Postgres Foreign Data Wrapper development framework macros for supabase-wrappers


Keywords
database, extension, postgres, postgresql, foreign-data-wrapper, postgresql-extension, rust
License
Apache-2.0

Documentation

Wrappers

Wrappers is a development framework for Postgres Foreign Data Wrappers (FDW), written in Rust. Its goal is to make Postgres FDW development easier while keeping Rust language's modern capabilities, such as high performance, strong types, and safety.

Wrappers is also a collection of FDWs built by Supabase. We currently support the following FDWs, with more under development:

FDW Description Read Modify
HelloWorld A demo FDW to show how to develop a basic FDW.
BigQuery A FDW for Google BigQuery βœ… βœ…
Clickhouse A FDW for ClickHouse βœ… βœ…
Stripe A FDW for Stripe API βœ… βœ…
Firebase A FDW for Google Firebase βœ… ❌
Airtable A FDW for Airtable API βœ… ❌
S3 A FDW for AWS S3 βœ… ❌
Logflare A FDW for Logflare βœ… ❌
Auth0 A FDW for Auth0 βœ… ❌
SQL Server A FDW for Microsoft SQL Server βœ… ❌
Redis A FDW for Redis βœ… ❌
AWS Cognito A FDW for AWS Cognito βœ… ❌
Notion A Wasm FDW for Notion βœ… ❌
Snowflake A Wasm FDW for Snowflake βœ… βœ…
Paddle A Wasm FDW for Paddle βœ… βœ…

Warning

Restoring a logical backup of a database with a materialized view using a foreign table can fail. For this reason, either do not use foreign tables in materialized views or use them in databases with physical backups enabled.

Features

  • Minimum interface and easy to implement.
  • Support for rich data types.
  • Support both sync and async backends, such as RDBMS, RESTful APIs, flat files and etc.
  • Built on top of pgrx, providing higher level interfaces, without hiding lower-level C APIs.
  • WHERE, ORDER BY, LIMIT pushdown are supported.

Documentation

Installation

Wrappers is a pgrx extension, you can follow the pgrx installation steps to install Wrappers.

Basically, run below command to install FDW after pgrx is installed. For example,

cargo pgrx install --pg-config [path_to_pg_config] --features stripe_fdw

Developing a FDW

Visit Wrappers Docs for more details.

License

Apache License Version 2.0

crates.io badge docs.rs badge Test Status MIT/Apache-2 licensed Contributors