This is a framework/guide for creating Postgres FDW's in WASM. This makes it easy for anyone to create a Foreign Data Wrapper and share it with the community. We have released 2 examples: one for Snowflake[0] and one for Paddle[1]<p>Usually FDWs need to be "pre-installed" on Postgres which makes it harder for Postgres platforms to support a wide variety of FDWs. With WebAssembly, the FDW's can safely be installed from S3 or GitHub.<p>There are some trade-offs: the performance isn't as good as a "native" FDW. That said, we think the flexibility makes it worthwhile, and we'll improve the performance over time.<p><i>Background: what is a FDW?</i> Foreign Data Wrappers are a core feature of Postgres that allow you to access and query data stored in external data sources as if they were native Postgres tables. For example, the Stripe FDW allows you to query all your customers from Stripe inside your postgres database:<p><pre><code> select
customer_id,
name
from
stripe.customers;
</code></pre>
[0] snowflake: <a href="https://fdw.dev/catalog/snowflake/" rel="nofollow">https://fdw.dev/catalog/snowflake/</a><p>[1] paddle: <a href="https://fdw.dev/catalog/paddle/" rel="nofollow">https://fdw.dev/catalog/paddle/</a>