1225+ PostgreSQL Extensions Ranked & Compared

Every Postgres server extension (pgvector, PostGIS, pg_cron, Citus, and 1,200+ more), ranked by GitHub stars and grouped by category.

Last reviewed: October 3, 2026
324 extensions
1
timescaledb
23.7k+183 30d

Enables scalable inserts and complex queries for time-series data

Time-series & Temporal·TSL·C
2
pgvector
23.3k+328 30d

vector data type and ivfflat and hnsw access methods

Vector & AI·PostgreSQL·C
3
citus
12.8k+48 30d

Distributed PostgreSQL as an extension

Analytics & Columnar·AGPL-3.0·C
4
paradedb
9.4k+129 30d

Full text search for PostgreSQL using BM25

Full-text Search·AGPL-3.0·Rust
5
postgresml
6.8k+3 30d

Run AL/ML workloads with SQL interface

Vector & AI·MIT·Rust
6
pgmq
5.3k+96 30d

A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.

Database Features·PostgreSQL·SQL
7
age
4.9k+72 30d

AGE graph database extension

Database Features·Apache-2.0·C
8
orioledb
4.2k+61 30d

Pluggable PostgreSQL storage engine using undo logs, copy-on-write checkpoints, and 64-bit transaction IDs.

Database Features·Apache-2.0·C
9
pg_cron
3.9k+24 30d

Job scheduler for PostgreSQL

Time-series & Temporal·PostgreSQL·C
10
rdkit
3.6k+30 30d

Cheminformatics functionality for PostgreSQL.

Database Features·BSD-3-Clause·C++
11
documentdb
3.5k+13 30d

API surface for DocumentDB for PostgreSQL

Compatibility (Oracle/MSSQL)·MIT·C
12
pg_graphql
3.4k+12 30d

Add in-database GraphQL support

Database Features·Apache-2.0·Rust
13
pg_duckdb
3.3k+38 30d

DuckDB Embedded in Postgres

Analytics & Columnar·MIT·C++
14
pgvectorscale
3.1k+18 30d

Advanced indexing for vector data with DiskANN

Vector & AI·PostgreSQL·Rust
15
columnar
3.0k+3 30d

Hydra Columnar extension

Analytics & Columnar·Apache-2.0·C
16
pg_partman
2.8k+19 30d

Extension to manage partitioned tables by time or ID

Analytics & Columnar·PostgreSQL·C
17
pipelinedb
2.7k+1 30d

Runs continuous SQL queries that incrementally aggregate streaming time-series data and store only aggregate output in queryable tables.

Time-series & Temporal·Apache-2.0·C
18
pg_repack
2.3k+11 30d

Reorganize tables in PostgreSQL databases with minimal locks

Administration·BSD-3-Clause·C
19
plv8
2.1k+2 30d

PL/JavaScript (v8) trusted procedural language

Procedural Languages·PostgreSQL·C++
20
pg_mooncake
2.0k+2 30d

Columnstore Table in Postgres

Analytics & Columnar·MIT·C++
21
VectorChord
1.8k+23 30d

Vector database plugin for Postgres, written in Rust

Vector & AI·AGPL-3.0·Rust
22
cstore_fdw
1.8k0 30d

Provides columnar storage for analytics workloads via a foreign data wrapper, with ORC-inspired compression and skip indexes.

Analytics & Columnar·Apache-2.0·C
23
hypopg
1.7k+21 30d

Hypothetical indexes for PostgreSQL

Database Features·PostgreSQL·C
24
repmgr
1.7k+7 30d

Replication manager for PostgreSQL

Replication & ETL·GPL-3.0·C
25
pgaudit
1.7k+13 30d

provides auditing functionality

Security & Audit·PostgreSQL·C
26
index_advisor
1.7k+1 30d

Query index advisor

Database Features·PostgreSQL·SQL
27
pgsql-http
1.6k+7 30d

HTTP client for PostgreSQL, allows web page retrieval inside the database.

Utilities·MIT·C
28
omnigres
1.6k0 30d

Advanced adapter for Postgres extensions

Database Features·Apache-2.0·C
29
wal2json
1.5k+5 30d

Changing data capture in JSON format

Replication & ETL·BSD-3-Clause·C
30
pg_ivm
1.5k+16 30d

incremental view maintenance on PostgreSQL

Database Features·PostgreSQL·C
31
pgrouting
1.4k+8 30d

pgRouting Extension

Geospatial·GPL-2.0·C++
32
pg-strom
1.4k+1 30d

PG-Strom - big-data processing acceleration using GPU and NVME

Analytics & Columnar·PostgreSQL·C
33

pg_auto_failover

Administration·PostgreSQL·C
34
pglogical
1.2k+1 30d

PostgreSQL Logical Replication

Replication & ETL·PostgreSQL·C
35

type for storing hyperloglog data

Database Features·Apache-2.0·C++
36
pg_jsonschema
1.2k+3 30d

PostgreSQL extension providing JSON Schema validation

Database Features·Apache-2.0·Rust
37
pgtap
1.2k+3 30d

Unit testing for PostgreSQL

Procedural Languages·PostgreSQL·C
38
pgactive
1.1k+4 30d

Active-Active Replication Extension for PostgreSQL

Replication & ETL·Apache-2.0·C
39
pg_shard
1.1k0 30d

Shards and replicates PostgreSQL tables across multiple nodes for horizontal scaling (superseded by Citus).

Database Features·LGPL-3.0·C
40
pg_hint_plan
922+9 30d

Give PostgreSQL ability to manually force some decisions in execution plans.

Database Features·BSD-3-Clause·C
41
wrappers
890+7 30d

Foreign data wrappers developed by Supabase

Foreign Data Wrappers·Apache-2.0·Rust
42
zhparser
870−1 30d

a parser for full-text search of Chinese

Full-text Search·PostgreSQL·C
43
rum
845+5 30d

RUM index access method

Database Features·PostgreSQL·C
44
powa
8440 30d

PostgreSQL Workload Analyser-core

Monitoring & Stats·PostgreSQL·Python
45
pglite-fusion
834+2 30d

Embed an SQLite database in your PostgreSQL table

Data Types·MIT·Rust
46
pg_vectorize
8320 30d

The simplest way to do vector search on Postgres

Vector & AI·PostgreSQL·Rust
47
plpgsql_check
781+2 30d

extended check for plpgsql functions

Procedural Languages·MIT·C
48
pgroonga
752+3 30d

Use Groonga as index, fast full text search platform for all languages!

Full-text Search·PostgreSQL·C
49
jsquery
7110 30d

data type for jsonb inspection

Database Features·PostgreSQL·C
50
Multicorn
706+1 30d

Foreign data wrapper that lets you implement custom FDWs in Python to fetch external data as Postgres tables.

Foreign Data Wrappers·PostgreSQL·Python
51
pg_squeeze
700+9 30d

A tool to remove unused space from a relation.

Administration·BSD-2-Clause·C
52
pg_parquet
691+6 30d

copy data between Postgres and Parquet

Analytics & Columnar·PostgreSQL·Rust
53
audit-trigger
671−1 30d

Provides a trigger-based row-level audit log of table changes; intended as a demo and reference rather than production.

Security & Audit·PLpgSQL
54
MobilityDB
628+4 30d

MobilityDB geospatial trajectory data management & analysis platform

Geospatial·GPL-3.0·C
55
pgsodium
612+1 30d

Postgres extension for libsodium functions

Security & Audit·BSD-3-Clause·C
56
mysql_fdw
6000 30d

Foreign data wrapper for querying a MySQL server

Foreign Data Wrappers·BSD-3-Clause·C
57

The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information.

Monitoring & Stats·BSD-3-Clause·C
58
pg_pathman
588+1 30d

Provides optimized HASH and RANGE partitioning with custom plan nodes and faster partition pruning than native inheritance.

Administration·PostgreSQL·C
59
zson
570+2 30d

Provides transparent JSONB compression using a shared dictionary of frequently used strings learned from training data.

Data Types·MIT·C
60
oracle_fdw
552+1 30d

foreign data wrapper for Oracle access

Foreign Data Wrappers·PostgreSQL·C
61
orafce
545+3 30d

Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS

Compatibility (Oracle/MSSQL)·BSD 0-Clause·C
62
redis_fdw
5340 30d

Foreign data wrapper for querying a Redis server

Foreign Data Wrappers·PostgreSQL·C
63

Validates JSON columns against JSON Schema draft v4 specifications using a PL/pgSQL function suitable for CHECK constraints.

Functions·PostgreSQL·PLpgSQL
64
pgx_ulid
502+1 30d

ulid type and methods

Functions·MIT·Rust
65
aqo
501+1 30d

Improves the query planner by learning cardinality estimates from prior query executions.

Monitoring & Stats·AGPL-3.0·C
66
pg_bulkload
4950 30d

pg_bulkload is a high speed data loading utility for PostgreSQL

Replication & ETL·BSD-3-Clause·C
67

Library of analytical hyperfunctions, time-series pipelining, and other SQL utilities

Time-series & Temporal·TSL·Rust
68
madlib
4760 30d

Provides scalable in-database analytics with statistical, machine learning, and graph algorithms for PostgreSQL and Greenplum.

Vector & AI·Apache-2.0·C++
69
plprql
476+1 30d

Use PRQL in PostgreSQL - Pipelined Relational Query Language

Procedural Languages·Apache-2.0·Rust
70
pgjwt
442−1 30d

JSON Web Token API for Postgresql

Utilities·MIT·SQL
71
tds_fdw
434+2 30d

Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server)

Foreign Data Wrappers·PostgreSQL·C
72
pg_uuidv7
429−1 30d

Create UUIDv7 values in postgres

Functions·MPL-2.0·C
73
pointcloud
428+2 30d

data type for lidar point clouds

Geospatial·BSD-3-Clause·C
74
pgq
427+2 30d

Generic queue for PostgreSQL

Database Features·ISC·C
75
pg_idkit
424+1 30d

multi-tool for generating new/niche universally unique identifiers (ex. UUIDv6, ULID, KSUID)

Functions·Apache-2.0·Rust
76
pg_timeseries
424+1 30d

Convenience API for time series stack

Time-series & Temporal·PostgreSQL·SQL
77
pg_jieba
422+1 30d

Adds Chinese full-text search to PostgreSQL using the cppjieba word-segmentation library.

Full-text Search·BSD-3-Clause·C
78
duckdb_fdw
413+4 30d

DuckDB Foreign Data Wrapper

Analytics & Columnar·MIT·C
79
pgMemento
412+1 30d

Provides an audit trail with schema versioning using triggers, PL/pgSQL functions, and JSONB delta logging.

Security & Audit·LGPL-3.0·PLpgSQL
80
pg_tle
4100 30d

Trusted Language Extensions for PostgreSQL

Procedural Languages·Apache-2.0·C
81
OneSparse
407+2 30d

Provides sparse linear algebra and graph processing inside PostgreSQL using the SuiteSparse GraphBLAS library.

Data Types·Apache-2.0·C
82
pg_tracing
407+1 30d

Distributed Tracing for PostgreSQL

Monitoring & Stats·MIT·C
83

support similarity queries

Vector & AI·BSD-3-Clause·C
84
parquet_fdw
3880 30d

Read-only foreign data wrapper for querying Apache Parquet files as PostgreSQL tables.

Foreign Data Wrappers·PostgreSQL·C++
85
h3-pg
385+3 30d

PostgreSQL bindings for H3, a hierarchical hexagonal geospatial indexing system

Geospatial·Apache-2.0·PLpgSQL
86

A postgresql extension for bm25 ranking algorithm

Full-text Search·AGPL-3.0·Rust
87
pg_later
375−1 30d

Run queries now and get results later

Time-series & Temporal·PostgreSQL·Rust
88
pg_net
372+3 30d

Async HTTP Requests

Utilities·Apache-2.0·C
89
pg_plugins
3490 30d

Output plugin for logical replication in Raw SQL format

Replication & ETL·PostgreSQL·C
90
mongo_fdw
3430 30d

foreign data wrapper for MongoDB access

Foreign Data Wrappers·LGPL-3.0·C
91
pguint
343+1 30d

unsigned integer types

Data Types·PostgreSQL·C
92
pg_qualstats
342+1 30d

An extension collecting statistics about quals

Monitoring & Stats·BSD-3-Clause·C
93

Implements a vectorized executor for PostgreSQL over the cstore_fdw columnar store to speed up analytic queries.

Analytics & Columnar·Apache-2.0·C
94
pg_hashids
3240 30d

Short unique id generator for PostgreSQL, using hashids

Functions·MIT·C
95
pguri
3240 30d

URI Data type for PostgreSQL

Data Types·PostgreSQL·C
96
periods
319−1 30d

Provide Standard SQL functionality for PERIODs and SYSTEM VERSIONING

Time-series & Temporal·PostgreSQL·C
97
pg_profile
314+2 30d

PostgreSQL load profile repository and report builder

Monitoring & Stats·BSD-2-Clause·C
98

generator of sequential UUIDs

Functions·MIT·C
99
Biscuit
3000 30d

Bitmap-based index access method for LIKE/ILIKE pattern matching with multi-column support and no recheck overhead.

Database Features·MIT·C
100

support for Roaring Bitmaps

Data Types·Apache-2.0·C
101

SI units extension

Data Types·GPL-2.0·C
102

Kernel statistics gathering

Monitoring & Stats·BSD-3-Clause·C
103
pljava
270−1 30d

PL/Java procedural language

Procedural Languages·BSD-3-Clause·Java
104
imgsmlr
2640 30d

Image similarity with haar

Database Features·PostgreSQL·C
105

foreign-data wrapper for GIS data access

Geospatial·MIT·C
106
sqlite_fdw
2620 30d

SQLite Foreign Data Wrapper

Foreign Data Wrappers·PostgreSQL·C
107

Logical decoding plugin that delivers WAL stream changes using a Protocol Buffer format

Replication & ETL·MIT·C
108
pg_background
259+4 30d

Run SQL queries in the background

Time-series & Temporal·GPL-3.0·C
109
pg_rational
2570 30d

bigint fractions

Data Types·MIT·C
110

type for top-n JSONB

Functions·AGPL-3.0·C
111
pg_blkchain
2370 30d

Adds Bitcoin blockchain parsing functions to PostgreSQL, including script parsing, signature verification, and transaction inspection over bytea columns.

Utilities·MIT·C
112
vault
235+1 30d

Supabase Vault Extension

Security & Audit·Apache-2.0·C
113

Incremental Processing by Crunchy Data

Database Features·PostgreSQL·C
114
pgpdf
2260 30d

PDF type with meta admin & Full-Text Search

Data Types·GPL-2.0·C
115
pljs
226+2 30d

Trusted JavaScript procedural language for PostgreSQL using the QuickJS engine.

Procedural Languages·PostgreSQL·C
116
pg_amqp
2140 30d

Lets PostgreSQL statements publish messages directly to an AMQP broker like RabbitMQ.

Replication & ETL·MIT·C
117
pg_show_plans
209+1 30d

show query plans of all currently running SQL statements

Monitoring & Stats·PostgreSQL·C
118

Queries ClickHouse from PostgreSQL via a foreign data wrapper, with aggregate and join pushdown for analytics workloads.

Foreign Data Wrappers·PostgreSQL·C
119
pgJQ
2050 30d

Use jq in Postgres

Utilities·MIT·C
120
imcs
2020 30d

Provides an in-memory columnar store for accelerating analytical queries.

Analytics & Columnar·Apache-2.0·C
121
pg_jobmon
202−1 30d

Extension for logging and monitoring functions in PostgreSQL

Security & Audit·PostgreSQL·SQL
122
plproxy
1980 30d

Database partitioning implemented as procedural language

Analytics & Columnar·BSD 0-Clause·C
123
pgsentinel
191+1 30d

active session history

Monitoring & Stats·PostgreSQL·C
124
system_stats
184+4 30d

EnterpriseDB system statistics for PostgreSQL

Monitoring & Stats·PostgreSQL·C
125
pgfaceting
182+1 30d

fast faceting queries using an inverted index

Data Types·BSD-3-Clause·SQL
126

sampling based statistics of wait events

Monitoring & Stats·PostgreSQL·C
127
plsh
1780 30d

PL/sh procedural language

Procedural Languages·MIT·C
128

aws_s3 postgres extension to import/export data from/to s3

Foreign Data Wrappers·Apache-2.0·SQL
129
sql_firewall
1760 30d

Learns a whitelist of allowed queries by userid and blocks or warns on unrecognized statements to protect against SQL injection.

Security & Audit·C
130
pg_rrule
1750 30d

RRULE field type for PostgreSQL

Data Types·MIT·C
131
pgmemcache
1750 30d

memcached interface

Compatibility (Oracle/MSSQL)·MIT·C
132

Validates jsonb values against JSON Schema Draft 4 and Draft 7 specifications.

Functions·MIT·C
133
pg-semver
170+1 30d

Semantic version data type

Data Types·PostgreSQL·C
134

view object permissions and compare them with the desired state

Administration·BSD-2-Clause·SQL
135
ip4r
1660 30d

IPv4/v6 and IPv4/v6 range index type for PostgreSQL

Data Types·PostgreSQL·C
136
pg_dirtyread
1660 30d

Read dead but unvacuumed rows from table

Administration·BSD-3-Clause·C
137
holycorn
1650 30d

Implements foreign data wrappers in Ruby via an embedded mruby VM, with built-in support for Redis and other backends.

Foreign Data Wrappers·LGPL-3.0·C
138
pldotnet
165+1 30d

Adds C# and F# as loadable procedural languages for PostgreSQL functions, procedures, triggers, and set-returning functions.

Procedural Languages·PostgreSQL·C#
139
vops
1630 30d

Speeds up OLAP queries in PostgreSQL using vectorized columnar tiles and chunk-based execution.

Analytics & Columnar·C
140
pllua
1610 30d

Lua as a procedural language

Procedural Languages·MIT·C
141

Inspects a running backend and returns EXPLAIN ANALYZE-style live execution statistics for the query it is currently processing.

Monitoring & Stats·C
142
pg_bigm
157+4 30d

create 2-gram (bigram) index for faster full text search.

Full-text Search·PostgreSQL·C
143
pgddl
1560 30d

DDL eXtractor functions

Administration·PostgreSQL·SQL
144

Require criteria for UPDATE and DELETE

Administration·ISC·C
145
pgsql-postal
1460 30d

Exposes libpostal address parsing and normalization functions for international street addresses inside PostgreSQL.

Geospatial·MIT·C
146
hdfs_fdw
1410 30d

foreign-data wrapper for remote hdfs servers

Foreign Data Wrappers·BSD-3-Clause·C
147
SupaScript
1390 30d

Adds NodeJS-like require(), console, and HTTP helpers to PLV8 functions in PostgreSQL and Supabase, with dynamic loading of web modules.

Utilities·SQL
148
pgrocks-fdw
1310 30d

Foreign data wrapper that exposes RocksDB and other LSM-tree key-value stores as PostgreSQL tables.

Foreign Data Wrappers·Apache-2.0·C
149

Provides functions to query, convert, and extract fields from Protocol Buffer columns stored in PostgreSQL.

Functions·MIT·C++
150
plr
129+1 30d

load R interpreter and execute R script from within a database

Procedural Languages·GPL-2.0·C
151
smlar
1280 30d

Effective similarity search

Vector & AI·PostgreSQL·C
152
www_fdw
1260 30d

Foreign data wrapper that exposes remote web services (JSON, XML) as PostgreSQL tables.

Foreign Data Wrappers·PostgreSQL·C
153
ora_migrator
122+1 30d

db_migrator plugin that migrates Oracle databases to PostgreSQL with optional near-zero-downtime replication.

Compatibility (Oracle/MSSQL)·PL/pgSQL
154

Tunes execution plans automatically through a feedback loop, refining hints via pg_hint_plan and pg_store_plans across repeated runs.

Monitoring & Stats·C
155
timestamp9
120+25 30d

timestamp nanosecond resolution

Data Types·MIT·C
156
multicorn2
118+2 30d

Fetch foreign data in Python in your PostgreSQL server.

Foreign Data Wrappers·PostgreSQL·C
157

Adds a RoaringBitmap data type with functions, operators, and aggregates for compressed bitmap computation on Greenplum and PostgreSQL.

Data Types·Apache-2.0·C
158
kafka_fdw
112−1 30d

kafka Foreign Data Wrapper for CSV formatted messages

Foreign Data Wrappers·PostgreSQL·C
159
pgfincore
1110 30d

examine and manage the os buffer cache

Administration·BSD-3-Clause·C
160
json_fdw
1100 30d

Queries local or remote line-delimited JSON files as PostgreSQL foreign tables with read and write support.

Foreign Data Wrappers·C
161

PG Failover Slots extension

Replication & ETL·PostgreSQL·C
162

K-means function as a user-defined window function in PostgreSQL

Vector & AI·C
163
prefix
1060 30d

Prefix Range module for PostgreSQL

Data Types·PostgreSQL·C
164
plprofiler
1040 30d

server-side support for profiling PL/pgSQL functions

Procedural Languages·Artistic·C
165
pgextwlist
1020 30d

PostgreSQL Extension Whitelisting

Security & Audit·PostgreSQL·C
166
pgrag
1010 30d

Provides end-to-end RAG building blocks in Postgres including text extraction, chunking, local embeddings, reranking and remote LLM calls.

Vector & AI·Apache-2.0·Rust
167

Generate BM25 sparse vector inside PostgreSQL

Full-text Search·Apache-2.0·Rust
168
pg_savior
100+24 30d

Postgres extension to save OOPS mistakes

Administration·MIT·C
169
pgtt
1000 30d

Extension to add Global Temporary Tables feature to PostgreSQL

Compatibility (Oracle/MSSQL)·ISC·C
170

automated ddl deployment using pglogical

Replication & ETL·MIT·C
171
tdigest
980 30d

Provides tdigest aggregate function.

Functions·PostgreSQL·C
172

filter statements by their execution plans.

Database Features·PostgreSQL·C
173

Adds a packed phone number type backed by Google's libphonenumber.

Data Types·Apache-2.0·C++
174
rw_redis_fdw
96−1 30d

Provides a writable foreign data wrapper for Redis, supporting SELECT, INSERT, UPDATE, DELETE on strings, sets, hashes, lists, zsets, and pubsub.

Foreign Data Wrappers·C
175

Provides probabilistic data-sketch aggregates (HLL, CPC, Theta, KLL, quantiles, frequent items) backed by Apache DataSketches C++.

Functions·Apache-2.0·C
176
pldebugger
940 30d

server-side support for debugging PL/pgSQL functions

Procedural Languages·Artistic·C
177
emaj
920 30d

Enables fine-grained write logging and time travel on subsets of the database.

Time-series & Temporal·GPL-3.0·SQL
178

Provides PL/R, a PostgreSQL procedural language for writing functions in the R statistical computing language.

Procedural Languages·C
179
acl
900 30d

ACL Data type

Data Types·BSD-2-Clause·C
180
jsoncdc
900 30d

Provides change data capture for PostgreSQL by translating the write-ahead log to JSON output.

Replication & ETL·Apache-2.0·Rust
181
q3c
900 30d

q3c sky indexing plugin

Geospatial·GPL-2.0·C
182
supautils
90+2 30d

Extension that secures a cluster on a cloud environment

Security & Audit·Apache-2.0·C
183
pgsql-gzip
880 30d

gzip and gunzip functions.

Utilities·MIT·C
184

Diagnosing system catalog corruption

Administration·BSD-3-Clause·C
185
credcheck
860 30d

credcheck - postgresql plain text credential checker

Security & Audit·PostgreSQL·C
186

An alternative to COUNT(DISTINCT …) aggregate, usable with HashAggregate

Functions·BSD-2-Clause·C
187
jdbc_fdw
790 30d

foreign-data wrapper for remote servers available over JDBC

Foreign Data Wrappers·PostgreSQL·C
188
mimeo
790 30d

Extension for specialized, per-table replication between PostgreSQL instances

Replication & ETL·PostgreSQL·SQL
189
set_user
780 30d

similar to SET ROLE but with added logging

Security & Audit·PostgreSQL·C
190

Generates a range of unique identifiers including UUIDv6, UUIDv7, NanoID, KSUID, ULID, Timeflake, PushID, CUID2, and TypeID.

Functions·Rust
191
bg_mon
750 30d

Background worker that collects per-process and system stats and serves them via an embedded HTTP endpoint.

Monitoring & Stats·MIT·C
192

Core extension for the PoWA Workload Analyzer that gathers PostgreSQL performance statistics for monitoring and tuning.

Monitoring & Stats·PostgreSQL·C
193
provsql
75+2 30d

Adds (m-)semiring provenance and uncertainty management, enabling probability, Shapley value, and semiring evaluation over query results.

Database Features·MIT·C++
194

Foreign data wrapper that fetches tweets from the Twitter API and exposes them as a queryable table.

Foreign Data Wrappers·PostgreSQL·C
195
pg_curl
710 30d

Run curl actions for data transfer in URL syntax

Utilities·MIT·C
196

Manage authentication sessions using JWTs

Security & Audit·Apache-2.0·Rust
197
pgfsm
710 30d

Demonstrates a simple finite state machine pattern using SQL tables and triggers to enforce valid state transitions.

Utilities·CC0-1.0·PL/pgSQL
198
s3_fdw
700 30d

Provides a foreign data wrapper for reading Amazon S3 files using PostgreSQL's built-in COPY format.

Foreign Data Wrappers·C
199

track plan statistics of all SQL statements executed

Monitoring & Stats·BSD-3-Clause·C
200
pg_task
69+1 30d

execute any sql command at any specific time at background

Time-series & Temporal·MIT·C
201

Czech Hunspell Dictionary

Full-text Search·PostgreSQL·Data
202

German Hunspell Dictionary

Full-text Search·PostgreSQL·Data
203

en_US Hunspell Dictionary

Full-text Search·PostgreSQL·Data
204

French Hunspell Dictionary

Full-text Search·PostgreSQL·Data
205

Nepali Hunspell Dictionary

Full-text Search·PostgreSQL·Data
206

Dutch Hunspell Dictionary

Full-text Search·PostgreSQL·Data
207

Norwegian (norsk) Hunspell Dictionary

Full-text Search·PostgreSQL·Data
208

Portuguese Hunspell Dictionary

Full-text Search·PostgreSQL·Data
209

Russian Hunspell Dictionary

Full-text Search·PostgreSQL·Data
210

Russian Hunspell Dictionary (from AOT.ru group)

Full-text Search·PostgreSQL·Data
211

PostgreSQL table versioning extension

Time-series & Temporal·BSD-3-Clause·SQL
212
pg_render
650 30d

Render HTML in SQL

Utilities·MIT·Rust
213
sr_plan
640 30d

Saves and restores query execution plans to lock planner decisions, similar to Oracle's Outline system.

Monitoring & Stats·PostgreSQL·C
214

Protobuf support for PostgreSQL

Utilities·MIT·C
215

Queries InfluxDB 1.8 and 2.7 time-series data as PostgreSQL foreign tables with pushdown of GROUP BY time intervals.

Foreign Data Wrappers·PostgreSQL·C
216

Provides a cryptographically verifiable audit trail by applying blockchain-style Merkle proofs to relational data.

Security & Audit·GPL-3.0·C
217
pg_ulid
620 30d

Generates Universally Unique Lexicographically Sortable Identifiers (ULIDs) as text values.

Functions·MIT·Go
218

Consumes Apache Kafka topics into PipelineDB streams via background workers and produces messages from queries.

Replication & ETL·C
219
pg-ulid
610 30d

Adds a ULID data type stored as a 128-bit integer along with creation, comparison, and formatting helpers.

Data Types·C
220
pghashlib
590 30d

Stable hash functions for Postgres

Utilities·PostgreSQL·C
221

Adds full-text search dictionaries for North American street addresses, handling abbreviations and directional tokens.

Full-text Search·MIT·SQL
222
pg_trgm_pro
58−1 30d

Extends pg_trgm with substring similarity functions and operators for fuzzy text search.

Full-text Search·PostgreSQL·C
223

Server side rollback at statement level for PostgreSQL like Oracle or DB2

Compatibility (Oracle/MSSQL)·ISC·C
224
pg_simula
560 30d

Simulates database failures by injecting waits, errors, fatals or panics for selected SQL operations to help test resilience.

Utilities·C
225
pg-emoji
560 30d

Encodes and decodes bytea or text values to and from emoji sequences with a built-in checksum.

Functions·MIT·PL/pgSQL
226
pgdd
560 30d

Introspect pg data dictionary via standard SQL

Administration·MIT·Rust
227
libx509pq
550 30d

Exposes OpenSSL's X.509 certificate parser as SQL functions, powering crt.sh-style certificate transparency search.

Security & Audit·GPL-3.0·C
228
pg_recall
550 30d

Tracks changes to selected tables in separate _log tables so rows can be queried as they existed at any past timestamp.

Security & Audit·PLpgSQL
229

Track settings changes

Monitoring & Stats·PostgreSQL·SQL
230
pgnodemx
550 30d

Capture node OS metrics via SQL queries

Monitoring & Stats·Apache-2.0·C
231
ptrack
55−1 30d

Tracks changed blocks in PostgreSQL to power incremental backups via pg_probackup.

Administration·C
232
dump_fdw
540 30d

Foreign data wrapper that queries data directly from PostgreSQL custom-format dump files for selective restore and analytics.

Foreign Data Wrappers·BSD-3-Clause·C
233
geoip
520 30d

IP-based geolocation query

Geospatial·BSD-2-Clause·SQL
234
pg_check
520 30d

Verifies integrity of PostgreSQL tables and b-tree indexes via page-level and item-level consistency checks.

Administration·BSD-3-Clause·C
235

tiktoken tokenizer for use with OpenAI models in postgres

Vector & AI·Apache-2.0·Rust
236
url_encode
520 30d

url_encode, url_decode functions

Utilities·PostgreSQL·C
237

Analyzes queries with hypothetical indexes and suggests candidate indexes that would improve execution plans.

Monitoring & Stats·PostgreSQL·C
238

Various functions for computing statistics on arrays of numbers

Functions·MIT·C
239
pg_tm_aux
500 30d

Creates logical replication slots at a past LSN so logical streaming can resume after a physical replica is promoted (obsolete since PG 17).

Replication & ETL·C
240

Adds a PERIOD data type, functions, and indexing strategies for managing time ranges in PostgreSQL.

Time-series & Temporal·C
241
queen
500 30d

PostgreSQL extension wrapper for Queen MQ - a simplified Kafka-style API for pub/sub message queuing directly in PostgreSQL.

Utilities·Apache-2.0·C++
242
git_fdw
490 30d

PostgreSQL Git Foreign Data Wrapper

Foreign Data Wrappers·MIT·C
243

Adds an EFILE data type for accessing external files on the PostgreSQL server, similar to Oracle BFILE.

Data Types·PostgreSQL·PL/pgSQL
244

Provides trigger-based table auditing that stores row diffs as JSONB for easy querying.

Security & Audit·PLpgSQL
245

Tokenizers for full-text search

Full-text Search·Apache-2.0·Rust
246

Email address type for PostgreSQL

Data Types·PostgreSQL·C
247
preprepare
460 30d

Pre Prepare your Statement server side

Administration·PostgreSQL·C
248

Foreign data wrapper for Firebird

Foreign Data Wrappers·PostgreSQL·C
249

Extension to add Oracle DBMS_JOB full compatibility to PostgreSQL

Compatibility (Oracle/MSSQL)·PostgreSQL·SQL
250
pgzstd
430 30d

Zstandard compression algorithm implementation in PostgreSQL

Utilities·ISC·C
251

Foreign data wrapper that exposes MonetDB columnar database tables as PostgreSQL foreign tables.

Foreign Data Wrappers·C
252

Provides a full-text-search parser that splits Chinese, Japanese, and Korean text into 2-gram tokens while keeping default behavior for other scripts.

Full-text Search·C
253
pg_scws
410 30d

Adds a Chinese full-text search parser for to_tsvector based on the SCWS word-segmentation library.

Full-text Search·BSD-3-Clause·C
254

Provides a Rust foreign data wrapper for querying Google Cloud Bigtable and HBase-compatible databases as PostgreSQL tables.

Foreign Data Wrappers·MIT·Rust
255
kt_fdw
390 30d

Foreign data wrapper that exposes Kyoto Tycoon key/value stores as PostgreSQL tables, supporting reads, writes, and transactions.

Foreign Data Wrappers·MIT·C
256
permuteseq
390 30d

Pseudo-randomly permute sequences with a format-preserving encryption on elements

Functions·PostgreSQL·C
257

Provides cheat (but useful) functions

Administration·PostgreSQL·C
258
quantile
390 30d

Quantile aggregation function

Functions·BSD-2-Clause·C
259

Aggregate functions for array inputs

Functions·MIT·C
260
pgflake
38+1 30d

Generates time-sortable 64-bit Snowflake IDs using a custom epoch, instance ID, and sequence number.

Functions·Apache-2.0·C
261
logerrors
370 30d

Function for collecting statistics about messages in logfile

Security & Audit·BSD-3-Clause·C
262

Fixed precision decimal data type backed by 64-bit integers, offering faster arithmetic than NUMERIC for monetary values.

Data Types·C
263
pg_keeper
360 30d

Provides automatic standby promotion and failover for a two-server PostgreSQL replication cluster.

Administration·PostgreSQL·C
264

Extension for querying PgBouncer stats from normal SQL views & running pgbouncer commands from normal SQL functions

Foreign Data Wrappers·PostgreSQL·SQL
265
go-fdw
350 30d

Go project template for Foreign Data Wrappers for PostgreSQL

Foreign Data Wrappers·MIT·Go
266
icu_ext
35+1 30d

Access ICU functions

Utilities·PostgreSQL·C
267
istore
350 30d

Adds integer-keyed and integer-valued hstore types that support arithmetic operators and SUM aggregates for analytics.

Data Types·MIT·C
268
ldap_fdw
350 30d

Foreign data wrapper that exposes LDAP directory servers as queryable PostgreSQL tables.

Foreign Data Wrappers·PostgreSQL·C
269
vasco
350 30d

discover hidden correlations in your data with MIC

Functions·GPL-3.0·C
270

Small PostgreSQL background worker to report whether a node is a replication master or standby

Monitoring & Stats·PostgreSQL·C
271

first() and last() aggregate functions

Functions·PostgreSQL·C
272
jsonbx
340 30d

Adds extra functions and operators for manipulating jsonb values on PostgreSQL 9.4.

Functions·PostgreSQL·C
273
pg_crash
340 30d

Send random signals to random processes

Administration·BSD-3-Clause·C
274
pljulia
340 30d

Adds Julia as a loadable procedural language for writing PostgreSQL functions, with type conversions for arrays and composite types.

Procedural Languages·C
275
sqlite_fdw
340 30d

Provides an experimental foreign data wrapper for querying SQLite databases as PostgreSQL tables.

Foreign Data Wrappers·C
276
login_hook
330 30d

login_hook - hook to execute login_hook.login() at login time

Security & Audit·GPL-3.0·C
277
neo4j_fdw
330 30d

Foreign data wrapper that exposes Neo4j Cypher query results as PostgreSQL tables.

Foreign Data Wrappers·C
278
pg_themis
330 30d

Exposes the Themis cryptographic library to Postgres for encrypting and decrypting data via Secure Cell and Secure Message primitives.

Security & Audit·Apache-2.0·C
279
pgsql-fio
330 30d

PostgreSQL File I/O Functions

Administration·BSD-3-Clause·C
280

Foreign data wrapper for querying CouchDB document databases as PostgreSQL foreign tables.

Foreign Data Wrappers·C
281
db2_fdw
32+1 30d

foreign data wrapper for DB2 access

Foreign Data Wrappers·PostgreSQL·C
282

Send redis pub/sub messages to Redis from PostgreSQL Directly

Foreign Data Wrappers·MIT·C
283
pgmp
320 30d

Multiple Precision Arithmetic extension

Data Types·LGPL-3.0·C
284
vrprouting
320 30d

Extends pgRouting with algorithms for solving Vehicle Routing Problems (VRP) using VROOM.

Geospatial·GPL-2.0·C++
285

Extra Window Functions for PostgreSQL

Functions·PostgreSQL·C
286

Foreign data wrapper that exposes delimited file rows as a single text[] column for variable field counts.

Foreign Data Wrappers·C
287
lsm3
310 30d

Implements an LSM-tree access method on top of standard PostgreSQL B-Tree indexes for fast inserts.

Database Features·C
288
pagevis
310 30d

Visualise database pages in ascii code

Monitoring & Stats·MIT·SQL
289
pg_healer
310 30d

Proof-of-concept extension that automatically repairs certain types of PostgreSQL data file corruption.

Administration·PostgreSQL·C
290
pg_xid
310 30d

Generates k-ordered, 12-byte globally unique IDs compatible with MongoDB ObjectIDs without central coordination.

Data Types·MIT·C
291

Activate/deactivate/verify checksums in offline Postgres clusters

Administration·BSD-2-Clause·C
292

Manages and freezes planner statistics so PostgreSQL can use saved snapshots instead of the latest stats when building execution plans.

Monitoring & Stats·C
293
pgpcre
300 30d

Perl Compatible Regular Expression functions

Utilities·PostgreSQL·C
294

Foreign data wrapper that reads OpenStreetMap PBF files as queryable PostgreSQL tables.

Foreign Data Wrappers·C
295
spat
30+1 30d

Redis-like In-Memory DB Embedded in Postgres

Compatibility (Oracle/MSSQL)·AGPL-3.0·C
296

Financial aggregate functions

Functions·PostgreSQL·C
297
pg_proctab
290 30d

Exposes the Linux operating-system process table through SQL so load, memory, CPU, and I/O stats can be queried from PostgreSQL.

Monitoring & Stats·PostgreSQL·C
298

Deletes records along with their foreign-key dependents in one recursive CTE, with an ASCII preview of the dependency graph.

Functions·MIT·PLpgSQL
299
pg-uint128
290 30d

Native uint128 type

Data Types·PostgreSQL·C
300
plv8_geo
290 30d

Bundles JavaScript geometry libraries (d3, topojson, jsts, earcut) as PLV8 functions for geospatial data.

Geospatial·MIT·JavaScript
301

Accelerates PostgreSQL query execution using vectorized executor nodes via the CustomScan framework.

Analytics & Columnar·C
302
cigration
280 30d

Performs online shard migration for Citus clusters using logical replication to enable scale-out, scale-in, and worker replacement.

Administration·Apache-2.0·PL/pgSQL
303

Provides functions and views to inspect PostgreSQL object access privileges across roles.

Security & Audit·PL/pgSQL
304

Tools to migrate other databases to PostgreSQL

Replication & ETL·BSD-3-Clause·SQL
305
informix_fdw
28−1 30d

Queries IBM Informix databases as PostgreSQL foreign tables via the ESQL/C Client SDK, with read and write support.

Foreign Data Wrappers·PostgreSQL·C
306
odbc_fdw
280 30d

Foreign data wrapper that queries remote databases through ODBC driver managers and DSN connections.

Foreign Data Wrappers·C
307

monitor connection attempts per user

Security & Audit·MIT·C
308

foreign-data wrapper for remote PGSpider servers

Foreign Data Wrappers·PostgreSQL·C
309

Adds a 1-byte tinyint integer data type to PostgreSQL for compact columns and easier porting from other RDBMS.

Data Types·C
310
argm
270 30d

Adds argmax, argmin, and anyold aggregate functions for picking row values by sort key.

Functions·PostgreSQL·C
311

Invalidates the shared_buffers cache globally or for a specific relation and fork.

Administration·C
312

Provides monitoring views and functions covering disk usage, WAL throughput, replication lag, and query sources for Prometheus, Zabbix, or Munin agents.

Monitoring & Stats·PLpgSQL
313
pgespresso
270 30d

Adds functions and views used by Barman to perform concurrent base backups on PostgreSQL versions older than 9.6.

Administration·PostgreSQL·C
314
tsvector2
270 30d

Provides an extended tsvector type with better compression and no 1MB size limit, as a drop-in replacement.

Full-text Search·PostgreSQL·C
315
jdbc2_fdw
260 30d

Queries remote JDBC-compatible data sources from PostgreSQL with predicate push-down via a deparser.

Foreign Data Wrappers·C
316
lostgis
260 30d

Adds geospatial types and helper functions on top of PostGIS, including Time-Position-Velocity and OpenStreetMap opening_hours.

Geospatial·BSD-3-Clause·PL/pgSQL
317
lsm
260 30d

Provides a foreign data wrapper for accessing RocksDB key-value storage as PostgreSQL tables.

Foreign Data Wrappers·Apache-2.0·C
318
pg_dtm
260 30d

Provides a distributed transaction manager for PostgreSQL using snapshot sharing across cluster nodes.

Database Features·C
319

foreign-data wrapper for Postgres log file access

Foreign Data Wrappers·Apache-2.0·C
320
range_agg
260 30d

Provides a range_agg aggregate that merges adjacent or overlapping range values, useful for temporal coalescing.

Functions·MIT·C
321
jsonknife
250 30d

Adds jsonb functions for data extraction, validation, and transformation using JSON path vectors.

Functions·C
322

The PostgreSQL Antivirus

Security & Audit·PostgreSQL·C
323
pgchronos
250 30d

Adds union, intersection, and difference operators for arrays of daterange and tstzrange values.

Functions·BSD-3-Clause·SQL
324
pgsphere
250 30d

spherical objects with useful functions, operators and index support

Data Types·BSD-3-Clause·C

What is a PostgreSQL Extension?

A PostgreSQL extension is a packaged set of SQL objects and (usually) compiled C, Rust, or Python code that adds new capability to a running Postgres server, whether new data types, index methods, functions, operators, or procedural languages. Extensions are installed at the database level via CREATE EXTENSION and tracked in the pg_extension catalog. The mechanism is the same one used by Postgres itself to ship its 'contrib' modules: pgcrypto, hstore, btree_gin, and uuid-ossp all ship with core Postgres but must be enabled explicitly per database. Most extensions are distributed as source on GitHub and packaged for major Linux distributions by the PGDG repository or community projects like Pigsty and pgxman.

When to Add an Extension to PostgreSQL

Reach for an extension when you need a capability that Postgres core deliberately leaves out: vector similarity search (pgvector), geospatial queries (PostGIS), columnar storage (Citus, Hydra), in-database scheduling (pg_cron), full-text search beyond tsvector (pg_search, ParadeDB), or compatibility with another database's dialect (Orafce for Oracle, babelfishpg_tsql for SQL Server). Two cautions: extensions that ship a shared library require server restart or shared_preload_libraries config, and managed services like AWS RDS and Supabase only allow extensions on their allow-list, so verify availability before you architect around one. For everything else, the standard answer is 'use a core feature'. Postgres ships more functionality every release that previously required an extension (JSONB indexing, parallel queries, declarative partitioning).

PostgreSQL extensions FAQ

What are PostgreSQL extensions?
PostgreSQL extensions are loadable modules that add new functions, data types, operators, index methods, or procedural languages to a running Postgres server. They're installed with the CREATE EXTENSION command and register in the server's pg_extension catalog, sharing the same transaction model and security as core Postgres. Popular examples include pgvector (vector similarity search), PostGIS (geospatial), pg_stat_statements (query monitoring), and pg_cron (in-database job scheduling).
How do I install a PostgreSQL extension?
On self-managed Postgres: install the OS package (e.g. apt install postgresql-17-pgvector or yum install pgvector_17), then run CREATE EXTENSION pgvector; inside the target database as a superuser. On managed services like AWS RDS, Supabase, and Neon, the binaries are pre-installed. You only run the CREATE EXTENSION step, and you're limited to the provider's allow-list. For extensions not packaged in PGDG, the pig CLI from Pigsty or pgxman automate downloading and building from source across PG versions and OS distributions.
How do I check which PostgreSQL extensions are installed?
Inside psql, the \dx meta-command lists every installed extension in the current database along with its version and schema. For a SQL-only equivalent, query SELECT * FROM pg_extension; (currently installed) or SELECT * FROM pg_available_extensions; (everything the server could install, including bundled extensions like pgcrypto and uuid-ossp). The pg_available_extensions view is the right one to use from monitoring tools, since it shows the gap between 'compiled in' and 'actively loaded'.
Do PostgreSQL extensions work on AWS RDS, Supabase, and Neon?
Every major managed Postgres provider supports extensions, but each maintains its own allow-list. AWS RDS and Aurora support around 80 extensions including pgvector, PostGIS, pg_stat_statements, and pg_cron. Supabase ships ~70 enabled by default and Neon supports 60+, both heavy on developer-facing extensions like pgvector, pg_trgm, and postgis. Source-available or commercial extensions like TimescaleDB are typically not available on RDS but are on Timescale Cloud, Supabase, or self-managed Postgres.
What's the best PostgreSQL extension for vector search?
pgvector is the de facto standard. It's MIT-licensed, has ~14k GitHub stars, supports HNSW and IVFFlat indexes, and is enabled on every major managed Postgres provider. For high-recall workloads at scale, pgvectorscale (DiskANN-backed, by Timescale) pairs with pgvector and improves recall/latency on million-vector datasets. pgvecto.rs and pg_embedding are alternative implementations but have less ecosystem support; pgvector is what we'd recommend starting with.

Manage PostgreSQL Visually

1bench is a modern GUI client for PostgreSQL. Install extensions, write queries, and inspect schemas without leaving the IDE.

Try 1bench for PostgreSQL