Repolode
pgcentralfoundation

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. 1

    cargo-pgrx 서브커맨드를 설치합니다

    cargo install --locked cargo-pgrx
  2. 2

    PGRX 홈 디렉터리를 초기화합니다(지원되는 PostgreSQL 버전을 다운로드하고 컴파일합니다)

    cargo pgrx init
  3. 3

    새 확장 프로젝트를 생성합니다

    cargo pgrx new my_extension
  4. 4

    psql에서 예제 확장을 실행합니다

    cargo pgrx run

사용 전 알아둘 점

  • 프로젝트 메타데이터에 라이선스가 명확히 지정되어 있지 않으므로 사용하기 전에 저장소의 라이선스를 확인하세요.
  • 초기화 단계에서 여러 PostgreSQL 버전을 다운로드하고 컴파일하므로 시간과 디스크 공간이 필요합니다.
  • 크로스 컴파일은 nix에서만 시연되어 있으며, 다른 환경에서는 수동 설정이 필요합니다.

포함된 컬렉션

토픽

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

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트