Repolode
jackc

jackc/pgx

PostgreSQL向けの純Go製ドライバー兼ツールキット。LISTEN/NOTIFYやCOPYなど、PostgreSQL固有の機能を利用できます。

スター
14,384
フォーク
1,159
未解決の Issue
218
最終コミット
一昨日

これは何?

pgxはPostgreSQL向けの純Go製ドライバー兼ツールキットです。低レベルでパフォーマンスを重視したドライバーインターフェースを備え、LISTEN / NOTIFYやCOPYなどのPostgreSQL固有の機能を利用できます。既存コードが依存している場合に備えて、標準のdatabase/sqlインターフェース用アダプターも含まれています。

ツールキットは、ワイヤープロトコルの解析やPostgreSQLとGo間の型マッピングなど、PostgreSQLの機能を実装するパッケージ群です。これらを再利用して、代替ドライバー、プロキシ、ロードバランサー、論理レプリケーションクライアントを構築できます。並行利用向けのコネクションプール(pgxpool)も用意されています。

約70種類のPostgreSQL型、プリペアドステートメントのキャッシュ、バッチクエリ、カスタム型のバイナリ形式エンコーディング、トレースおよびログ用フックをサポートしています。Go 1.25以降、PostgreSQL 14以降を対象としています。

主な機能

  • 01約70種類のPostgreSQL型と、Goとの型マッピングをサポート
  • 02プリペアドステートメントの自動キャッシュとバッチクエリ
  • 03大量データのロードに使えるCOPYプロトコルをサポート
  • 04LISTEN / NOTIFYとラージオブジェクトをサポート
  • 05接続後フックを備えたコネクションプール
  • 06トレースおよびログ用フックとdatabase/sqlアダプター

ユースケース

  • PostgreSQL固有の機能を必要とする、PostgreSQLと直接通信するGoサービスの構築
  • COPYプロトコルを使った大規模データセットの一括ロード
  • PostgreSQLプロキシ、コネクションプーラー、論理レプリケーションクライアントの開発
  • database/sqlに依存する既存コードベースでのpgxの利用

クイックスタート

  1. 1

    Goでpgx v5モジュールをインストールします

    go get github.com/jackc/pgx/v5
  2. 2

    DATABASE_URL環境変数を使ってpgx.Connectで接続し、クエリを実行するプログラムを作成します

使う前に知っておきたいこと

  • 接続先としてPostgreSQLサーバーが必要です(バージョン14以降に対応)。
  • Go 1.25以降が必要です。

収録されている特集

トピック

よくある質問

pgx とは?
PostgreSQL向けの純Go製ドライバー兼ツールキット。LISTEN/NOTIFYやCOPYなど、PostgreSQL固有の機能を利用できます。 pgxはPostgreSQL向けの純Go製ドライバー兼ツールキットです。低レベルでパフォーマンスを重視したドライバーインターフェースを備え、LISTEN / NOTIFYやCOPYなどのPostgreSQL固有の機能を利用できます。既存コードが依存している場合に備えて、標準のdatabase/sqlインターフェース用アダプターも含まれています。
pgx は無料で使えますか?ライセンスは?
pgx は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pgx は今もメンテナンスされていますか?
活発にメンテナンス中。pgx の最終コミットは 2026年11月5日 です。
pgx は何に使えますか?
PostgreSQL固有の機能を必要とする、PostgreSQLと直接通信するGoサービスの構築 COPYプロトコルを使った大規模データセットの一括ロード PostgreSQLプロキシ、コネクションプーラー、論理レプリケーションクライアントの開発 database/sqlに依存する既存コードベースでのpgxの利用
pgx のインストール方法は?
Goでpgx v5モジュールをインストールします: go get github.com/jackc/pgx/v5 DATABASE_URL環境変数を使ってpgx.Connectで接続し、クエリを実行するプログラムを作成します
pgx はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/jackc/pgx

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト