Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Builder
PostHog
GitHub
177 stars
Latest release
latest
Date

About

DuckDB-backed Postgres server — speak the Postgres wire protocol but query with DuckDB's analytical engine.

What it does

DuckGres lets existing PostgreSQL clients run analytical SQL without changing drivers. It translates PostgreSQL syntax where needed, accepts DuckDB syntax as a fallback, and isolates authenticated users in separate database files. It also supports prepared statements, parameterized queries, binary formats, and bulk transfers.

Why it's ranked here

DuckGres is compelling when PostgreSQL client compatibility matters more than PostgreSQL engine parity. Its operational surface goes beyond a protocol adapter: mandatory TLS, worker isolation, rolling control-plane updates, rate limiting, graceful shutdown, detailed metrics, and durable query history make it credible for managed analytical workloads.

What's good

Compatibility is documented feature by feature, including differential tests against PostgreSQL 16 and explicit gaps. The server handles prepared statements, binary encoding, bulk import and export, password authentication over TLS, and per-user storage. Prometheus metrics distinguish admission, worker acquisition, session startup, queries, and metadata proxy traffic.

Tradeoffs

This is not full PostgreSQL. Savepoints, triggers, sequences, materialized views, partitioning, and several specialized types are outside scope or unsupported. Extended-protocol statements with mutation results are deliberately rejected. DuckLake cannot enforce uniqueness, so conflict handling can amplify duplicate keys. The metrics port is fixed and cannot be configured.

How to use it well

Use DuckGres for analytical services that already speak PostgreSQL and benefit from DuckDB execution, especially managed environments needing tenant isolation, worker controls, metrics, and lakehouse catalogs. Validate each required PostgreSQL feature against the compatibility matrix. Do not choose it as a drop-in OLTP database or where exact PostgreSQL transaction and constraint behavior is mandatory.

Technical notes+

README.md describes TLS-only pgwire, per-user DuckDB files, COPY, DuckLake attachment, standalone and control-plane modes, and Prometheus exposure. main.go registers standalone, control-plane, duckdb-service, and reshard-runner modes, with configuration precedence of CLI flags over environment, YAML, and defaults. go.mod defines a Go module using DuckDB bindings, pgx, lib/pq, Arrow, gRPC, Kubernetes clients, OpenTelemetry, and Prometheus; Linux bindings are replaced with PostHog builds. docs/postgres-compatibility.md separates differential coverage, partial support, thin coverage, unsupported behavior, and intentional exclusions. docs/metrics.md specifies metric boundaries and aggregation rules. docs/perf-harness-runbook.md says the performance harness collects signals without a pass/fail gate. docs/design/admin-ui.md explicitly marks the web console as in progress.

Observed

Primary language
Go, with the repository declared as a Go module.
Interface
Server and CLI exposing PostgreSQL wire protocol compatibility to standard PostgreSQL clients.
Configuration
YAML files, environment variables, and CLI flags, with documented precedence.
Deployment modes
Standalone, control-plane, DuckDB service, and reshard runner modes.
Platform bindings
DuckDB bindings are listed for macOS on amd64 and arm64, Linux on amd64 and arm64, and Windows on amd64.
Observability
Prometheus metrics, OpenTelemetry dependencies, durable query history, and performance harness tooling are documented.
Compatibility testing
The compatibility matrix cites differential tests comparing DuckGres with PostgreSQL 16, plus unit, transpiler, and real-driver tests.

Read from README.md, go.mod, main.go, docs/metrics.md, docs/perf-harness-runbook.md, docs/postgres-compatibility.md, docs/design/admin-ui.md, docs/design/resharding.md, docs/runbooks/resharding.md.

What it can do

  • Execute Postgres-compatible SQL queries using DuckDB's analytical engine

    SQL queries via Postgres wire protocolQuery results with analytical performance optimizations

  • Connect existing Postgres client applications to DuckDB backend

    Standard Postgres client connectionsDatabase connectivity with DuckDB query execution

  • Perform analytical queries on columnar data with Postgres syntax

    Complex analytical SQL queriesFast query results optimized for analytics workloads

  • Process large datasets using DuckDB's vectorized execution engine

    Large-scale data queries through Postgres protocolHigh-performance query results

  • Enable Postgres tooling to work with DuckDB's analytical capabilities

    Postgres-compatible client tools and applicationsTool integration with DuckDB backend functionality

Tags

duckdbpostgresanalyticsdatabaseposthog

Tech Stack

GoDocker

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.