Расширение PostgreSQL для высокопроизводительной аналитики временных рядов и событийных данных в реальном времени.
pgcentralfoundation/pgrx
Фреймворк на Rust для разработки расширений PostgreSQL с инструментами для настройки, запуска, тестирования и сборки пакетов под разные версии Postgres.
- Звёзды
- 4,823
- Форки
- 341
- Открытые issues
- 343
- Последний коммит
- 10 часов назад
Что это?
pgrx — это фреймворк для написания расширений PostgreSQL на Rust. Он преобразует функции, типы и перечисления Rust в объекты Postgres и автоматически генерирует для них SQL-схему. Благодаря этому расширение можно целиком написать на Rust и при этом предоставлять его функции и пользовательские типы в SQL.
Подкоманда cargo-pgrx управляет процессом разработки: создаёт проекты расширений, скачивает и собирает версии Postgres, запускает интерактивную сессию psql с загруженным расширением, выполняет тесты на нескольких версиях Postgres и собирает установочные пакеты. Проект поддерживает Postgres с 13-й по 18-ю версию, а также бета-версию 19, используя единую кодовую базу.
Фреймворк уделяет особое внимание безопасности: паники Rust преобразуются в ошибки Postgres, которые прерывают транзакцию, а не весь процесс, а управление памятью следует семантике drop в Rust. Кроме того, он предоставляет доступ к SPI, контекстам памяти, хукам и низкоуровневым привязкам pg_sys.
Ключевые возможности
- 01Создание каркаса, запуск, тестирование и сборка пакетов расширений с помощью команды cargo-pgrx
- 02Поддержка Postgres с 13-й по 18-ю версию из единой кодовой базы
- 03Автоматическая генерация SQL-схем по аннотациям Rust, например #[pg_extern]
- 04Определение пользовательских типов и перечислений Postgres с помощью derive-макросов
- 05Паники преобразуются в ошибки Postgres, которые прерывают только транзакцию
- 06Доступ к SPI, контекстам памяти, хукам и внутренним низкоуровневым API pg_sys
Сценарии использования
- Написание на Rust пользовательского типа данных Postgres или функции, связанной с индексами
- Разработка расширения PostgreSQL, которое оборачивает библиотеку Rust для использования в SQL-запросах
- Тестирование расширения на нескольких основных версиях Postgres в CI
Быстрый старт
- 1
Установите подкоманду cargo-pgrx
cargo install --locked cargo-pgrx - 2
Инициализируйте домашний каталог PGRX (загружает и компилирует поддерживаемые версии PostgreSQL)
cargo pgrx init - 3
Создайте новый проект расширения
cargo pgrx new my_extension - 4
Запустите пример расширения в psql
cargo pgrx run
Что важно знать
- В метаданных проекта лицензия указана неясно, поэтому перед использованием проверьте лицензию в репозитории.
- На этапе инициализации загружаются и компилируются несколько версий PostgreSQL, что требует времени и места на диске.
- Кросс-компиляция показана только в nix; в других средах потребуется ручная настройка.
В подборках
Темы
Частые вопросы
- Что такое pgrx?
- Фреймворк на Rust для разработки расширений PostgreSQL с инструментами для настройки, запуска, тестирования и сборки пакетов под разные версии Postgres. pgrx — это фреймворк для написания расширений PostgreSQL на Rust. Он преобразует функции, типы и перечисления Rust в объекты Postgres и автоматически генерирует для них SQL-схему. Благодаря этому расширение можно целиком написать на Rust и при этом предоставлять его функции и пользовательские типы в SQL.
- pgrx можно использовать бесплатно? Какая у него лицензия?
- pgrx распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pgrx всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pgrx — 7 нояб. 2026 г..
- Для чего можно использовать pgrx?
- Написание на Rust пользовательского типа данных Postgres или функции, связанной с индексами Разработка расширения PostgreSQL, которое оборачивает библиотеку Rust для использования в SQL-запросах Тестирование расширения на нескольких основных версиях Postgres в CI
- Как установить pgrx?
- Установите подкоманду cargo-pgrx: cargo install --locked cargo-pgrx Инициализируйте домашний каталог PGRX (загружает и компилирует поддерживаемые версии PostgreSQL): cargo pgrx init Создайте новый проект расширения: cargo pgrx new my_extension Запустите пример расширения в psql: cargo pgrx run
- Где скачать pgrx?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pgcentralfoundation/pgrx
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Неблокирующий клиент PostgreSQL для Node.js: драйвер на чистом JavaScript с поддержкой нативных привязок libpq.
Консольный клиент для Postgres с автодополнением и подсветкой синтаксиса — альтернатива стандартному psql.
Подборка программ, библиотек, инструментов, расширений и обучающих материалов для PostgreSQL, которую поддерживает сообщество.
Встраиваемая SQL-база данных на Rust, совместимая с диалектом SQL, форматом файлов и C API SQLite, с экспериментальным интерфейсом Postgres.
Прозрачный кэш для MySQL и Postgres, который работает перед базой данных и синхронизирует результаты запросов через поток репликации.