8 points par GN⁺ 2024-12-09 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Ce dépôt rassemble des outils et des exemples montrant comment utiliser Postgres pour divers usages, selon l’approche « Keep It Simple Stupid, just use postgres »
  • La liste s’inspire de l’article Postgres for Everything d’Amazing CTO et d’un gist GitHub de @cpursley, et elle est maintenue parce que de nouveaux outils et usages continuent d’apparaître autour de Postgres
  • Son périmètre est large : tâches cron, Postgres embarqué, files de messages, analytique, GIS, journaux d’audit, contrôle d’accès, recherche, séries temporelles, NoSQL, graphes, HTTP, API, CDC, cache, tests, migrations, optimisation des performances, monitoring, extensions, UI, CLI, visualisation, gestion de paquets, sécurité, jusqu’aux grands livres financiers
  • Chaque entrée organise surtout des liens vers des extensions Postgres, bibliothèques, plateformes d’API, articles et outils ; certaines sont associées à des technologies concrètes comme DuckDB, pgvector, PostGIS, PgBouncer, GraphQL ou CDC
  • Les utilisateurs qui souhaitent ajouter un extrait de code, un outil ou un projet en exemple doivent ouvrir une PR avec un lien et utiliser le nouveau pull request template

Objectif du dépôt et mode de maintenance

  • Le dépôt Postgres for Everything a pour objectif de montrer comment utiliser Postgres pour de nombreux usages
  • Le dépôt s’inspire des ressources suivantes
  • Comme de nouveaux outils apparaissent sur Postgres et que de nouveaux usages continuent d’émerger, il est maintenu comme un endroit où les suivre
  • Si vous avez d’autres exemples, vous pouvez soumettre une PR
  • Pour présenter un extrait de code, un outil ou un projet, il faut ouvrir une PR avec un lien et utiliser le pull request template

Lectures et retours d’expérience

Exécution de tâches, embarqué et files d’attente

  • Cron Jobs

  • Embeddable Postgres

    • PGLite : empaquette sous forme de bibliothèque TypeScript un build WASM de Postgres de moins de 10 Mo, exécutable dans le navigateur, Node.js, Bun et Deno
    • pgmicro : réimplémentation in-process de PostgreSQL basée sur un moteur de stockage compatible SQLite
  • Message Queues

    • tembo-io/pgmq
    • SKIP LOCKED
    • sequinstream/sequin : outil CDC qui envoie les lignes et changements Postgres vers des plateformes de streaming et des files comme Kafka ou SQS
    • janbjorge/pgqueuer : bibliothèque Python de file de tâches utilisant PostgreSQL
    • smartpricing/queen : file de messages basée sur PostgreSQL, avec partitions FIFO indépendantes, consumer groups façon Kafka et livraison exactly-once

Analytique, cartographie, audit et autorisations

Recherche, séries temporelles, stockage en colonnes, NoSQL, graphe

  • Full Text Search

  • Vector Search

    • pgvector/pgvector
    • tensorchord/VectorChord : extension PostgreSQL de recherche de similarité vectorielle visant l’évolutivité, les hautes performances et l’efficacité disque
    • timescale/pgai : extension basée sur pgvector qui prend en charge le développement d’applications RAG, de recherche sémantique et d’IA dans Postgres
    • timescale/pgvectorscale : implémentation d’un index vectoriel DiskANN complétant pgvector
  • Hybrid Search

    • plpgsql_bm25rrf.sql : recherche hybride combinant BM25 et pgvector via Reciprocal Rank Fusion
  • Time Series

  • Column Oriented

  • NoSQL

  • Graph Data

    • Apache Age : base de données graphe pour PostgreSQL, apportant des capacités de traitement et d’analyse de données graphe aux bases de données relationnelles

Données externes, HTTP, API, GraphQL, CDC

Cache, tests, applications, migrations

Performance, monitoring, montée en charge, UI

  • Performance Tuning

  • Monitoring

    • StatsMgr: prend en charge la gestion des statistiques, notamment WAL, SLRU et checkpointing
    • pgMonitor: solution de monitoring qui visualise les métriques avec Prometheus, Grafana, SQL Exporter et l’extension pgMonitor
  • Testing

    • regresql: outil de tests de régression pour requêtes SQL prenant en charge PostgreSQL
  • Scaling & Storage

    • Snowflake-Labs/pg_lake: permet d’utiliser Postgres comme système lakehouse autonome et prend en charge les transactions et les requêtes sur des tables Iceberg stockées dans un stockage objet comme S3
    • pgdogdev/pgdog: pooler transactionnel et gestionnaire de réplication logique permettant le sharding de PostgreSQL
    • pgbouncer/pgbouncer: pooler de connexions léger pour PostgreSQL
    • orioledb.com: extension PostgreSQL combinant les avantages des moteurs sur disque et en mémoire
  • User Interfaces & Dashboards

Outils pour développeurs, visualisation, packages, sécurité, finance

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.