Repolode
jackc

jackc/pgx

Чистый Go-драйвер и набор инструментов для PostgreSQL с поддержкой специфичных возможностей, включая LISTEN/NOTIFY и COPY.

Звёзды
14,384
Форки
1,159
Открытые issues
218
Последний коммит
позавчера

Что это?

pgx — чистый Go-драйвер и набор инструментов для PostgreSQL. Его низкоуровневый интерфейс драйвера рассчитан на высокую производительность и поддерживает специфичные возможности PostgreSQL, такие как LISTEN / NOTIFY и COPY. В комплект также входит адаптер для стандартного интерфейса database/sql — для кода, который уже от него зависит.

Набор инструментов включает пакеты для работы с возможностями PostgreSQL, например для разбора wire-протокола и сопоставления типов PostgreSQL и Go. Их можно повторно использовать при создании альтернативных драйверов, прокси, балансировщиков нагрузки или клиентов логической репликации. Для параллельной работы предусмотрен пул соединений pgxpool.

Проект поддерживает около 70 типов PostgreSQL, кэширование подготовленных выражений, пакетные запросы, кодирование пользовательских типов в бинарном формате, а также хуки для трассировки и логирования. Требуются Go 1.25 или новее и PostgreSQL 14 или новее.

Ключевые возможности

  • 01Поддержка около 70 типов PostgreSQL и их сопоставление с типами Go
  • 02Автоматическое кэширование подготовленных выражений и пакетные запросы
  • 03Поддержка протокола COPY для массовой загрузки данных
  • 04Поддержка LISTEN / NOTIFY и больших объектов
  • 05Пул соединений с хуком after-connect
  • 06Хуки для трассировки и логирования, а также адаптер database/sql

Сценарии использования

  • Создание Go-сервисов для прямой работы с PostgreSQL и использования его специфичных возможностей
  • Массовая загрузка больших наборов данных с помощью протокола COPY
  • Разработка прокси для PostgreSQL, пула соединений или клиента логической репликации
  • Использование pgx в существующем коде, который полагается на database/sql

Быстрый старт

  1. 1

    Установите модуль pgx v5 с помощью Go

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

    Напишите программу, которая подключается с помощью pgx.Connect, используя переменную окружения DATABASE_URL, и выполняет запрос

Что важно знать

  • Для подключения требуется сервер PostgreSQL (поддерживаются версии 14 и выше).
  • Требуется Go 1.25 или более поздней версии.

В подборках

Темы

Частые вопросы

Что такое pgx?
Чистый Go-драйвер и набор инструментов для PostgreSQL с поддержкой специфичных возможностей, включая LISTEN/NOTIFY и COPY. pgx — чистый Go-драйвер и набор инструментов для PostgreSQL. Его низкоуровневый интерфейс драйвера рассчитан на высокую производительность и поддерживает специфичные возможности PostgreSQL, такие как LISTEN / NOTIFY и COPY. В комплект также входит адаптер для стандартного интерфейса database/sql — для кода, который уже от него зависит.
pgx можно использовать бесплатно? Какая у него лицензия?
pgx распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
pgx всё ещё поддерживается?
Активно поддерживается. Последний коммит в pgx — 5 нояб. 2026 г..
Для чего можно использовать pgx?
Создание Go-сервисов для прямой работы с PostgreSQL и использования его специфичных возможностей Массовая загрузка больших наборов данных с помощью протокола COPY Разработка прокси для PostgreSQL, пула соединений или клиента логической репликации Использование pgx в существующем коде, который полагается на database/sql
Как установить pgx?
Установите модуль pgx v5 с помощью Go: go get github.com/jackc/pgx/v5 Напишите программу, которая подключается с помощью pgx.Connect, используя переменную окружения DATABASE_URL, и выполняет запрос
Где скачать pgx?
Исходный код и инструкции по установке — на GitHub: https://github.com/jackc/pgx

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Бесплатный кроссплатформенный SQL-клиент для настольных ПК и инструмент для работы с базами данных: поддерживает более 100 баз через драйверы JDBC и ODBC.

52,3 тыс.+73 за неделю4,5 тыс.JavaApache-2.0Активно поддерживаетсяОбновлён 10 часов назад