시계열 및 이벤트 데이터의 고성능 실시간 분석을 위한 PostgreSQL 확장 기능입니다.
pgcentralfoundation/pgrx
PostgreSQL 확장 프로그램을 Rust로 개발하고, 여러 Postgres 버전에서 설정·실행·테스트·패키징할 수 있는 프레임워크입니다.
- 스타
- 4,823
- 포크
- 342
- 열린 이슈
- 343
- 마지막 커밋
- 8일 전
어떤 프로젝트인가요?
pgrx는 Rust로 PostgreSQL 확장 프로그램을 작성하기 위한 프레임워크입니다. Rust 함수, 타입, 열거형을 Postgres 객체에 매핑하고 이에 해당하는 SQL 스키마를 자동으로 생성하므로, 확장 프로그램 전체를 Rust로 작성하면서도 SQL에서 함수와 사용자 정의 타입을 사용할 수 있습니다.
cargo-pgrx 서브커맨드는 개발 워크플로를 관리합니다. 새 확장 프로그램 프로젝트를 만들고, Postgres 버전을 다운로드해 빌드하며, 확장 프로그램이 로드된 대화형 psql 세션을 실행하고, 여러 Postgres 버전에서 테스트를 수행하며, 설치 패키지를 생성합니다. 하나의 코드베이스로 Postgres 13~18과 19 베타를 지원합니다.
이 프레임워크는 안전성에 중점을 둡니다. Rust 패닉은 프로세스가 아니라 트랜잭션을 중단시키는 Postgres 오류로 변환되며, 메모리 관리는 Rust의 drop 시맨틱을 따릅니다. 또한 저수준 작업을 위해 SPI, 메모리 컨텍스트, 훅, raw pg_sys 바인딩에 접근할 수 있습니다.
핵심 기능
- 01cargo-pgrx 명령으로 확장 프로그램의 스캐폴딩, 실행, 테스트, 패키징
- 02하나의 코드베이스에서 Postgres 13~18 지원
- 03#[pg_extern] 같은 Rust 어노테이션을 바탕으로 SQL 스키마 자동 생성
- 04derive 매크로로 사용자 정의 Postgres 타입과 열거형 정의
- 05패닉을 트랜잭션만 중단시키는 Postgres 오류로 변환
- 06SPI, 메모리 컨텍스트, 훅, raw pg_sys 내부 기능에 접근
활용 사례
- Rust로 사용자 정의 Postgres 데이터 타입이나 인덱스 관련 함수 작성
- SQL 쿼리에서 사용할 Rust 라이브러리를 래핑하는 PostgreSQL 확장 프로그램 개발
- CI에서 여러 Postgres 메이저 버전을 대상으로 확장 프로그램 테스트
빠른 시작
- 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은(는) 무엇인가요?
- PostgreSQL 확장 프로그램을 Rust로 개발하고, 여러 Postgres 버전에서 설정·실행·테스트·패키징할 수 있는 프레임워크입니다. pgrx는 Rust로 PostgreSQL 확장 프로그램을 작성하기 위한 프레임워크입니다. Rust 함수, 타입, 열거형을 Postgres 객체에 매핑하고 이에 해당하는 SQL 스키마를 자동으로 생성하므로, 확장 프로그램 전체를 Rust로 작성하면서도 SQL에서 함수와 사용자 정의 타입을 사용할 수 있습니다.
- pgrx은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pgrx은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pgrx은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pgrx의 마지막 커밋은 2026년 10월 30일입니다.
- pgrx은(는) 어디에 사용할 수 있나요?
- Rust로 사용자 정의 Postgres 데이터 타입이나 인덱스 관련 함수 작성 SQL 쿼리에서 사용할 Rust 라이브러리를 래핑하는 PostgreSQL 확장 프로그램 개발 CI에서 여러 Postgres 메이저 버전을 대상으로 확장 프로그램 테스트
- 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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
순수 JavaScript 드라이버와 선택적 네이티브 libpq 바인딩을 제공하는 Node.js용 비동기 PostgreSQL 클라이언트입니다.
자동 완성과 구문 강조 기능을 제공하는 PostgreSQL CLI 클라이언트로, 기본 psql 셸을 대체할 수 있습니다.
PostgreSQL 소프트웨어, 라이브러리, 도구, 확장 기능과 학습 자료를 엄선해 정리하고 커뮤니티가 관리하는 목록입니다.
Rust로 작성된 인프로세스 SQL 데이터베이스로, SQLite의 방언·파일 형식·C API와 호환되며 실험적인 Postgres 프런트엔드를 제공합니다.
데이터베이스 앞단에서 동작하며 복제 스트림을 통해 캐시된 쿼리 결과를 동기화하는 투명한 MySQL 및 Postgres 캐시입니다.