jackc/pgx
开发工具纯 Go 编写的 PostgreSQL 驱动与工具包,让 Go 程序高效使用 PostgreSQL 专有特性。
pgx 是纯 Go 实现的 PostgreSQL 驱动与工具包,主要面向直接连接 PostgreSQL、希望使用 PostgreSQL 专有能力而不经过通用 database/sql 抽象的 Go 应用。项目同时发布基础驱动、连接池实现和 database/sql 适配层 pgx 包文档。
主要能力
基础驱动提供低层接口,直接暴露 LISTEN/NOTIFY、COPY 等 PostgreSQL 特性;还包含自动预编译与语句缓存、批量查询、单次往返查询模式、TLS 控制、自定义类型的二进制编码,以及约 70 种 PostgreSQL 类型与 Go 类型的映射,覆盖数组、json/jsonb、hstore、inet/cidr 和大对象 README 功能列表。
除驱动外,工具包还包含负责解析线协议、完成 PostgreSQL 与 Go 类型映射的底层包。这些包可用于实现其他驱动、代理、负载均衡器或逻辑复制客户端,而不局限于执行应用查询 README 概述。
两种使用接口
项目文档区分了两条路径。原生 pgx 接口更快,也是唯一能直接使用 LISTEN/NOTIFY、COPY 等特性的路径;stdlib 适配器提供 database/sql 兼容性,并且在需要时可以转为底层 pgx 接口 接口选择说明。需要并发安全的连接池时,文档给出的方案是 pgxpool 包 pgxpool 文档。
一种典型流程是:用 PostgreSQL 连接 URL 或 key=value 连接串建立连接,再通过原生接口执行查询,必要时配合连接池;连接参数遵循 PostgreSQL 的连接串规则 连接配置。项目 wiki 中提供了分步入门说明 入门指南。
版本与适用范围
当前支持 Go 1.25 及以上、PostgreSQL 14 及以上,版本范围跟随 Go 与 PostgreSQL 官方支持周期;项目还针对最新 CockroachDB 进行测试 支持的版本。对文档化的公共 API,项目遵循语义化版本规则,v5 是当前最新稳定主版本 版本策略。项目采用 MIT 许可证 代码仓库。
对贡献者而言,README 描述了本地 PostgreSQL 14–18 集群和 CockroachDB 节点的开发环境设置,具体步骤见开发文档 开发说明。这套设置只用于开发 pgx 本身,应用侧只需按常规方式添加 Go 依赖。README 没有给出正式的性能基准或迁移指南,因此在原生接口与 database/sql 之间如何选择,属于上文的接口设计取舍,而不是兼容性承诺。
本文由 AI 根据项目 README 生成,更新于 2026年10月29日,以项目官方文档为准。