Uma extensão do PostgreSQL para análises em tempo real e de alto desempenho de séries temporais e dados de eventos.
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
Instale o subcomando cargo-pgrx
cargo install --locked cargo-pgrx - 2
Inicialize o diretório inicial do PGRX (baixa e compila as versões compatíveis do PostgreSQL)
cargo pgrx init - 3
Crie um novo projeto de extensão
cargo pgrx new my_extension - 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
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
Cliente PostgreSQL não bloqueante para Node.js, com driver em JavaScript puro e bindings nativos opcionais para libpq.
Cliente de linha de comando para Postgres com preenchimento automático e realce de sintaxe, uma alternativa ao shell psql padrão.
Uma lista organizada e mantida pela comunidade de softwares, bibliotecas, ferramentas, extensões e materiais de aprendizado para PostgreSQL.
Banco de dados SQL em processo, escrito em Rust e compatível com o dialeto, o formato de arquivo e a C API do SQLite, com um frontend experimental para Postgres.
Um cache transparente para MySQL e Postgres que fica na frente do banco de dados e mantém os resultados das consultas em cache sincronizados pelo fluxo de replicação.