Skip to content

Latest commit

 

History

History
269 lines (189 loc) · 13.1 KB

README.md

File metadata and controls

269 lines (189 loc) · 13.1 KB

Postgres for Everything (e/postgres)

Keep It Simple Stupid, just use postgres.

Goals & Inspiration

The goal of this repository is to demonstrate how to use Postgres for Everything.

It's inspired by this article from the Amazing CTO as well as this GitHub gist from @cpursley.

Why maintain this list?

It seems like every week I hear of a new tool on top of Postgres or another way it can being used, so I wanted a place where I can keep track of everything. If you have other examples, submit a PR.

Star History

Star History Chart

Call To Action

If you have a specific code snippet, tool or project that you'll like to showcase as an example, put up a PR with a link! Make sure to use the new pull request template.

Table of Contents

Blog Posts & Articles

Cron Jobs

Embeddable Postgres

  • PGLite: WASM Postgres build packaged into a TypeScript library (< 10MB) that can run in the browser, Node.js, Bun and Deno. It's lightweight, reactive and sync live.

Message Queues

  • tembo-io/pgmq
  • SKIP LOCKED
  • riverqueue/river
  • sequinstream/sequin: Sequin is a tool for change data capture (CDC) in Postgres. Sequin makes it easy to stream Postgres rows and changes to streaming platforms and queues (e.g. Kafka and SQS). You can backfill existing rows and stream new changes in real-time.
  • janbjorge/pgqueuer: PgQueuer is a Python library leveraging PostgreSQL for efficient job queuing.
  • timgit/pg-boss: pg-boss is a job queue built in Node.js

Analytics

GIS & Mapping

Audit Logs

Access Control & Authorization

Search

Full Text

Vector

  • pgvector/pgvector
  • tensorchord/VectorChord: PostgreSQL extension designed for scalable, high-performance, and disk-efficient vector similarity search. It serves as the successor to the pgvecto.rs project.
  • timescale/pgai: PostgreSQL extension to allow RAG, semantic search and other AI application development from within postgres. Based on pgvector.
  • timescale/pgvectorscale: DiskANN vector index implementation complementary to pgvector.

Hybrid

  • plpgsql_bm25rrf.sql: Hybrid search (BM25+pgvector) with Reciprocal Rank Fusion implemented in PL/pgSQL

Time Series

Column Oriented

NoSQL

Graph Data

  • Apache Age: Graph Database for PostgreSQL to provide graph data processing and analytics capability to all relational databases.

Foreign Data

HTTP

API Platforms

GraphQL and Alternative Query Languages

  • PostGraphile: Extensible high-performance automatic GraphQL API for PostgresSQL
  • supabase/pg_graphql: PostgreSQL extension that enables querying the database with GraphQL using a single SQL function
  • dosco/graphjin: GraphJin automatically converts GraphQL into SQL queries
  • kaspermarstal/plprql: PostgreSQL extension to write functions using PRQL (Pipelined Relational Query Language)

Events, Replication, CDC

Caching

Unit Tests

HTML & Applications

Migrations

Performance Tuning

Monitoring

  • StatsMgr: Efficient and organized management of statistics across WAL, SLRU, checkpointing, & more. Currently supports dynamic initialization, shared memory utilization, and SQL interfaces.
  • pgMonitor: A monitoring solution that visualizes metrics using Prometheus, Grafana, SQL Exporter, and the pgMonitor extension.

Scaling & Storage

Dashboards & UIs

Visualization

Graphics Visualization

  • dr-jts/pg_svg: Collection of PostgreSQL functions to create SVG graphics intended to convert PostGIS geometries into styled SVG documents

Data Visualization

  • Evidence
  • Metabase
  • Hopara: Platform for real-time data visualization intended for Manufacturing, IoT, Life Science and Data Lakes.

Package Management

Language Servers

Miscellaneous