Una extensión de PostgreSQL para realizar análisis en tiempo real y de alto rendimiento de datos de series temporales y eventos.
pgcentralfoundation/pgrx
Framework de Rust para crear extensiones de PostgreSQL, con herramientas para configurarlas, ejecutarlas, probarlas y empaquetarlas para distintas versiones de Postgres.
- Estrellas
- 4,823
- Forks
- 342
- Issues abiertos
- 340
- Último commit
- hace 7 días
¿Qué es?
pgrx es un framework para escribir extensiones de PostgreSQL en Rust. Asocia funciones, tipos y enumeraciones de Rust con objetos de Postgres y genera automáticamente el esquema SQL correspondiente. Así, puedes escribir una extensión íntegramente en Rust y exponer funciones y tipos personalizados en SQL.
El subcomando cargo-pgrx gestiona el flujo de desarrollo: crea proyectos de extensión, descarga y compila versiones de Postgres, inicia una sesión interactiva de psql con la extensión cargada, ejecuta pruebas con varias versiones de Postgres y genera paquetes de instalación. El proyecto admite Postgres de la versión 13 a la 18, además de una beta de la 19, desde una única base de código.
El framework prioriza la seguridad: convierte los panics de Rust en errores de Postgres que abortan la transacción, pero no el proceso, y gestiona la memoria según la semántica de drop de Rust. También permite acceder a SPI, los contextos de memoria, los hooks y los bindings sin procesar de pg_sys para trabajar a un nivel más bajo.
Funciones clave
- 01Crear la estructura inicial, ejecutar, probar y empaquetar extensiones con el comando cargo-pgrx
- 02Compatibilidad con Postgres de la versión 13 a la 18 desde una única base de código
- 03Generar esquemas SQL automáticamente a partir de anotaciones de Rust como #[pg_extern]
- 04Definir tipos y enumeraciones personalizados de Postgres con macros derive
- 05Los panics se convierten en errores de Postgres que solo abortan la transacción
- 06Acceder a SPI, los contextos de memoria, los hooks y los elementos internos sin procesar de pg_sys
Casos de uso
- Escribir en Rust un tipo de datos personalizado de Postgres o una función relacionada con índices
- Crear una extensión de PostgreSQL que integre una biblioteca de Rust para usarla en consultas SQL
- Probar una extensión en CI con varias versiones principales de Postgres
Inicio rápido
- 1
Instala el subcomando cargo-pgrx
cargo install --locked cargo-pgrx - 2
Inicializa el directorio de inicio de PGRX (descarga y compila las versiones de PostgreSQL compatibles)
cargo pgrx init - 3
Crea un nuevo proyecto de extensión
cargo pgrx new my_extension - 4
Ejecuta la extensión de ejemplo en psql
cargo pgrx run
Antes de usarlo
- La licencia no está especificada claramente en los metadatos del proyecto, así que revisa la licencia del repositorio antes de usarlo.
- El paso de inicialización descarga y compila varias versiones de PostgreSQL, lo que requiere tiempo y espacio en disco.
- La compilación cruzada solo se muestra en nix y requiere configuración manual en otros entornos.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pgrx?
- Framework de Rust para crear extensiones de PostgreSQL, con herramientas para configurarlas, ejecutarlas, probarlas y empaquetarlas para distintas versiones de Postgres. pgrx es un framework para escribir extensiones de PostgreSQL en Rust. Asocia funciones, tipos y enumeraciones de Rust con objetos de Postgres y genera automáticamente el esquema SQL correspondiente. Así, puedes escribir una extensión íntegramente en Rust y exponer funciones y tipos personalizados en SQL.
- ¿pgrx es gratuito? ¿Qué licencia tiene?
- pgrx es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pgrx sigue mantenido?
- Mantenimiento activo. El último commit de pgrx fue el 30 oct 2026.
- ¿Para qué puedo usar pgrx?
- Escribir en Rust un tipo de datos personalizado de Postgres o una función relacionada con índices Crear una extensión de PostgreSQL que integre una biblioteca de Rust para usarla en consultas SQL Probar una extensión en CI con varias versiones principales de Postgres
- ¿Cómo se instala pgrx?
- Instala el subcomando cargo-pgrx: cargo install --locked cargo-pgrx Inicializa el directorio de inicio de PGRX (descarga y compila las versiones de PostgreSQL compatibles): cargo pgrx init Crea un nuevo proyecto de extensión: cargo pgrx new my_extension Ejecuta la extensión de ejemplo en psql: cargo pgrx run
- ¿Dónde consigo pgrx?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pgcentralfoundation/pgrx
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Cliente PostgreSQL no bloqueante para Node.js, con un driver en JavaScript puro y bindings nativos opcionales para libpq.
Cliente de línea de comandos para Postgres con autocompletado y resaltado de sintaxis, una alternativa al shell psql estándar.
Lista seleccionada y mantenida por la comunidad de software, bibliotecas, herramientas, extensiones y recursos de aprendizaje para PostgreSQL.
Una base de datos SQL en proceso, escrita en Rust y compatible con el dialecto, el formato de archivo y la API de C de SQLite, con un frontend experimental para Postgres.
Una caché transparente para MySQL y Postgres que se sitúa delante de la base de datos y mantiene sincronizados los resultados de las consultas mediante el flujo de replicación.