pq

A pure Go PostgreSQL driver for Go's standard database/sql package.

Library
Go
vv1.12.3
9,967 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
63 /100 Good
Development Activity 40
Maintenance 40
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
83 /100 Excellent
Architecture 84
Code Quality 85
Innovation 82
Learning Curve 80

lib/pq is a mature, pure-Go PostgreSQL driver that plugs directly into Go’s standard library database/sql interface. Registering it with a blank import lets you open a postgres connection and run queries with the same API you would use for any other SQL database, with no cgo or external C bindings required.

Beyond the basics it covers the parts of the PostgreSQL wire protocol that real applications need: TLS/SSL connections, PASSWORD/MD5/SCRAM-SHA-256 (and optional Kerberos) authentication, high-throughput COPY FROM STDIN bulk imports, asynchronous LISTEN/NOTIFY notifications, array and hstore type support, and libpq-compatible connection strings in both key=value and URL form.

What You Get

  • A drop-in postgres driver for database/sql, registered with a single blank import.
  • libpq-compatible connection strings in key=value and postgres:// URL form, including any run-time parameter.
  • Built-in TLS/SSL plus PASSWORD, MD5, and SCRAM-SHA-256 authentication (Kerberos via a separate module).
  • Bulk data loading through COPY FROM STDIN and asynchronous LISTEN/NOTIFY via pq.Listener.
  • Rich typed error values (pq.Error) exposing SQLSTATE codes, detail, hint, and source context.

Common Use Cases

  • Connecting a Go web service or API server to a PostgreSQL database through database/sql.
  • Streaming large datasets into PostgreSQL efficiently with COPY bulk imports.
  • Building event-driven features on top of PostgreSQL LISTEN/NOTIFY notifications.
  • Handling PostgreSQL-specific errors precisely by inspecting SQLSTATE codes.

Under The Hood

Architecture — pq is organized as a flat root package implementing the database/sql/driver contract, with conn.go handling the connection lifecycle and message loop, connector.go exposing the modern driver.Connector/Config path, copy.go implementing COPY-protocol streaming, notify.go providing the pq.Listener notification loop, and encode.go/array.go handling type encoding; supporting concerns are split into subpackages such as oid (type OIDs), scram (SCRAM-SHA-256), pqerror (SQLSTATE codes), hstore, and auth/kerberos, keeping optional dependencies out of the core.

Tech Stack — Written in pure Go (targeting go 1.23 per go.mod) with zero third-party runtime dependencies, relying solely on the standard library’s database/sql, crypto/tls, and net packages to speak the PostgreSQL wire protocol directly rather than binding to libpq via cgo.

Code Quality — The project is well tested, with 17 _test.go files covering connections, the connector, arrays, encoding, errors, COPY, SSL, and notifications, plus fuzz tests and runnable examples; tests execute against a real PostgreSQL instance (Docker compose provided) and the codebase carries typed error values and extensive doc comments.

API Design — The public surface is intentionally minimal and idiomatic: most users interact only through database/sql after a blank import, with pq.Config/NewConnectorConfig, pq.Listener, and pq.Error available for advanced needs. Package-level documentation in doc.go is thorough, and the libpq-compatible connection strings make the driver approachable for anyone familiar with PostgreSQL.

Used by 39 apps in this directory

Go
98%
Apache 2.0

Nightingale

Monitoring

13,383

Open-source alerting engine that connects to any time-series or log data source and routes alarms to 20+ notification channels with AI-assisted triage.

View details
95
Repo Health
77
Technical
67
Dependency
Built with
Go 98%
Updated 1 weeks ago
Go
75%
Other

Notifuse

Marketing

2,256

Open-source, self-hosted alternative to Mailchimp, Brevo, and Klaviyo — send newsletters and transactional emails without per-email pricing or vendor lock-in.

View details
83
Repo Health
80
Technical
65
Dependency
Built with
Go 75%
TypeScript 22%
Updated 6 days ago
Go
79%
Apache 2.0

OpenMeter

Developer Tools · Invoicing Finance

2,401

Open-source metering and billing engine for AI, agentic, and DevTool monetization — ingest usage events in real time and turn them into accurate invoices automatically.

View details
87
Repo Health
81
Technical
66
Dependency
Built with
Go 79%
TypeScript 16%
Updated 6 days ago
TypeScript
54%
Other

OpenReplay

Analytics

13,042

Self-hosted session replay and product analytics suite that lets you see exactly what users do on your web app — without sending data to third parties.

View details
91
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 54%
Go 13%
Updated 6 days ago
Go
93%
MIT

Plandex

AI Code Assistants

15,777

An open-source, terminal-based AI coding agent built for large tasks and real codebases — with its own version control for plans, a 2M-token effective context window, and self-hosted or cloud deployment.

View details
50
Repo Health
70
Technical
67
Dependency
Built with
Go 93%
Updated 1 years ago
Java
93%
Apache 2.0

QuestDB

Analytics · Databases

17,466

A high-performance, open-source time-series database built for financial market data, IoT telemetry, and real-time analytics, combining a zero-GC Java/C++ core with SIMD-accelerated SQL and a WAL-to-Parquet storage engine.

View details
91
Repo Health
86
Technical
67
Dependency
Built with
Java 93%
Updated 5 days ago
Go
98%
Apache 2.0

Space Cloud

Authentication · Devops

4,003

Kubernetes-native serverless platform that generates instant GraphQL and REST APIs for any database with built-in auth and real-time subscriptions

View details
50
Repo Health
74
Technical
63
Dependency
Built with
Go 98%
Updated 2 years ago
Go
100%
Apache 2.0

SpiceDB

Authentication · Databases · Security

7,169

An open source, Google Zanzibar-inspired authorization database that models permissions as relationships and evaluates fine-grained access checks at massive scale with single-digit millisecond latency.

View details
89
Repo Health
89
Technical
67
Dependency
Built with
Go 100%
Updated 1 weeks ago
Go
66%
GPL 3.0

Stormkit

Devops · Hosting Control Panel

264

Self-hostable platform for deploying and hosting modern web apps with automated CI/CD, custom domains, and a built-in serverless runtime — a true open-source alternative to Vercel and Netlify.

View details
80
Repo Health
79
Technical
67
Dependency
Built with
Go 66%
TypeScript 31%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers