Repolode
pgcentralfoundation

pgcentralfoundation/pgrx

Framework Rust para criar extensões do PostgreSQL, com ferramentas para configurar, executar, testar e empacotar em várias versões do Postgres.

Estrelas
4,823
Forks
342
Issues abertas
343
Último commit
há 8 dias

O que é?

pgrx é um framework para escrever extensões do PostgreSQL em Rust. Ele mapeia funções, tipos e enums do Rust para objetos do Postgres e gera automaticamente o esquema SQL correspondente. Assim, é possível escrever uma extensão inteiramente em Rust e ainda expor funções e tipos personalizados ao SQL.

O subcomando cargo-pgrx gerencia o fluxo de desenvolvimento: cria projetos de extensão, baixa e compila versões do Postgres, inicia uma sessão interativa do psql com a extensão carregada, executa testes em várias versões do Postgres e gera pacotes de instalação. O projeto oferece suporte ao Postgres 13 a 18, além de uma versão beta do 19, a partir de uma única base de código.

O framework prioriza a segurança: panics do Rust são convertidos em erros do Postgres que encerram a transação, em vez de finalizar o processo, e o gerenciamento de memória segue a semântica de drop do Rust. Ele também oferece acesso a SPI, contextos de memória, hooks e aos bindings brutos de pg_sys para tarefas de nível mais baixo.

Recursos principais

  • 01Estruturar, executar, testar e empacotar extensões com o comando cargo-pgrx
  • 02Suporte ao Postgres 13 a 18 em uma única base de código
  • 03Gerar esquemas SQL automaticamente a partir de anotações do Rust, como #[pg_extern]
  • 04Definir tipos e enums personalizados do Postgres com macros derive
  • 05Panics são convertidos em erros do Postgres que encerram apenas a transação
  • 06Acessar SPI, contextos de memória, hooks e os recursos internos brutos de pg_sys

Casos de uso

  • Escrever um tipo de dado personalizado do Postgres ou uma função relacionada a índices em Rust
  • Criar uma extensão do PostgreSQL que encapsula uma biblioteca Rust para uso em consultas SQL
  • Testar uma extensão em várias versões principais do Postgres no CI

Início rápido

  1. 1

    Instale o subcomando cargo-pgrx

    cargo install --locked cargo-pgrx
  2. 2

    Inicialize o diretório inicial do PGRX (baixa e compila as versões compatíveis do PostgreSQL)

    cargo pgrx init
  3. 3

    Crie um novo projeto de extensão

    cargo pgrx new my_extension
  4. 4

    Execute a extensão de exemplo no psql

    cargo pgrx run

Antes de usar

  • A licença não está claramente especificada nos metadados do projeto, então verifique a licença do repositório antes de usar.
  • A etapa de inicialização baixa e compila várias versões do PostgreSQL, o que leva tempo e ocupa espaço em disco.
  • A compilação cruzada é demonstrada apenas no nix e exige configuração manual em outros ambientes.

Em coleções

Tópicos

#postgres#postgresql#rust#database-extension#pg-extension#sql#postgresql-extension#rustlang

Perguntas frequentes

O que é pgrx?
Framework Rust para criar extensões do PostgreSQL, com ferramentas para configurar, executar, testar e empacotar em várias versões do Postgres. pgrx é um framework para escrever extensões do PostgreSQL em Rust. Ele mapeia funções, tipos e enums do Rust para objetos do Postgres e gera automaticamente o esquema SQL correspondente. Assim, é possível escrever uma extensão inteiramente em Rust e ainda expor funções e tipos personalizados ao SQL.
pgrx é gratuito? Qual é a licença?
pgrx é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
pgrx ainda é mantido?
Manutenção ativa. O último commit de pgrx foi em 30 de out. de 2026.
Para que posso usar pgrx?
Escrever um tipo de dado personalizado do Postgres ou uma função relacionada a índices em Rust Criar uma extensão do PostgreSQL que encapsula uma biblioteca Rust para uso em consultas SQL Testar uma extensão em várias versões principais do Postgres no CI
Como instalar pgrx?
Instale o subcomando cargo-pgrx: cargo install --locked cargo-pgrx Inicialize o diretório inicial do PGRX (baixa e compila as versões compatíveis do PostgreSQL): cargo pgrx init Crie um novo projeto de extensão: cargo pgrx new my_extension Execute a extensão de exemplo no psql: cargo pgrx run
Onde consigo pgrx?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pgcentralfoundation/pgrx

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados