面向 Node.js 的非阻塞 PostgreSQL 客户端,提供纯 JavaScript 驱动与可选的原生 libpq 绑定。
jackc/pgx
纯 Go 实现的 PostgreSQL 驱动与工具包,支持 LISTEN/NOTIFY、COPY 等 PostgreSQL 专有功能。
- Star
- 14,384
- Fork
- 1,159
- 未关闭 Issue
- 218
- 最近提交
- 前天
这是什么?
pgx 是一个纯 Go 实现的 PostgreSQL 驱动与工具包。其底层驱动接口注重性能,并支持 LISTEN / NOTIFY、COPY 等 PostgreSQL 专有功能;同时提供 database/sql 适配器,便于兼容已有代码。
工具包部分包含协议解析、PostgreSQL 与 Go 之间的类型映射等功能,可用于开发替代驱动、代理、负载均衡器或逻辑复制客户端。并发场景下可使用内置的连接池 pgxpool。
项目支持约 70 种 PostgreSQL 数据类型,提供语句预编译与缓存、批量查询、自定义类型的二进制编解码以及追踪和日志扩展点。需要 Go 1.25 及以上版本与 PostgreSQL 14 及以上版本。
核心功能
- 01支持约 70 种 PostgreSQL 数据类型并映射到 Go 类型
- 02自动语句预编译与缓存,支持批量查询
- 03支持 COPY 协议,适合大批量数据导入
- 04支持 LISTEN / NOTIFY 与大对象
- 05连接池提供连接后钩子,可执行自定义初始化
- 06提供追踪与日志接口,并兼容 database/sql
适用场景
- 构建直接连接 PostgreSQL 并需要其专有功能的 Go 服务
- 使用 COPY 协议批量导入大规模数据
- 开发 PostgreSQL 代理、连接池或逻辑复制客户端
- 在依赖 database/sql 的现有项目中使用 pgx
快速上手
- 1
使用 Go 安装 pgx v5 模块
go get github.com/jackc/pgx/v5 - 2
编写程序,通过 pgx.Connect 使用 DATABASE_URL 环境变量连接数据库并执行查询
使用前须知
- 需要连接一个 PostgreSQL 服务器(支持 14 及以上版本)。
- 需要 Go 1.25 或更高版本。
收录于专题
标签
常见问题
- pgx 是什么?
- 纯 Go 实现的 PostgreSQL 驱动与工具包,支持 LISTEN/NOTIFY、COPY 等 PostgreSQL 专有功能。 pgx 是一个纯 Go 实现的 PostgreSQL 驱动与工具包。其底层驱动接口注重性能,并支持 LISTEN / NOTIFY、COPY 等 PostgreSQL 专有功能;同时提供 database/sql 适配器,便于兼容已有代码。
- pgx 可以免费使用吗?用的什么许可证?
- pgx 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- pgx 还在维护吗?
- 活跃维护中。pgx 最近一次提交是在 2026年11月5日。
- pgx 适合用来做什么?
- 构建直接连接 PostgreSQL 并需要其专有功能的 Go 服务 使用 COPY 协议批量导入大规模数据 开发 PostgreSQL 代理、连接池或逻辑复制客户端 在依赖 database/sql 的现有项目中使用 pgx
- pgx 怎么安装和运行?
- 使用 Go 安装 pgx v5 模块: go get github.com/jackc/pgx/v5 编写程序,通过 pgx.Connect 使用 DATABASE_URL 环境变量连接数据库并执行查询
- 在哪里获取 pgx?
- 源代码和安装说明在 GitHub 上:https://github.com/jackc/pgx
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.3万+1 本周1384JavaScriptMIT更新于 16天前
纯 Java 实现的 PostgreSQL JDBC 驱动,让 Java 程序通过标准 JDBC 接口连接和操作 PostgreSQL 数据库。
1747959JavaBSD-2-Clause更新于 3天前
纯 Rust 的异步 SQL 工具库,可在编译期校验直接书写的 SQL,支持 PostgreSQL、MySQL/MariaDB 和 SQLite。
1.8万+19 本周1776RustApache-2.0更新于 7天前
一个用于数据库结构迁移的 CLI 与 Go 库,支持 SQL 文件和 Go 函数两种迁移方式。
1.2万+19 本周724GoOther维护活跃更新于 4天前
免费的跨平台桌面 SQL 客户端与数据库工具,支持 100 多种数据库。
5.2万+73 本周4450JavaApache-2.0维护活跃更新于 22小时前