Skip to content
이 페이지는 AI의 도움으로 작성 및 번역되었습니다. 부정확한 내용이 있으면 개선에 참여해 주세요. GitHub에서 편집

플러그인 아키텍처

PRX 플러그인 시스템은 서드파티 코드에 안전하고 이식 가능한 실행 환경을 제공하는 WASM 런타임 위에 구축됩니다. 이 페이지에서는 기술 아키텍처를 설명합니다.

런타임

PRX는 Wasmtime 런타임을 사용하여 WASM 플러그인을 실행합니다. 각 플러그인 인스턴스는 격리된 선형 메모리를 가진 자체 WASM 스토어에서 실행됩니다.

┌──────────────────────────────┐
│         PRX Host             │
│                              │
│  ┌────────────────────────┐  │
│  │    WASM Runtime         │  │
│  │  ┌──────┐  ┌──────┐   │  │
│  │  │Plugin│  │Plugin│   │  │
│  │  │  A   │  │  B   │   │  │
│  │  └──┬───┘  └──┬───┘   │  │
│  │     │         │        │  │
│  │  Host Functions API    │  │
│  └────────────────────────┘  │
└──────────────────────────────┘

호스트-게스트 경계

플러그인은 정의된 호스트 함수 세트를 통해 호스트와 통신합니다. 이 경계는 다음을 강제합니다:

  • 타입 안전성 -- 모든 함수 파라미터가 검증됨
  • 리소스 제한 -- 메모리와 CPU 사용량이 제한됨
  • 권한 검사 -- 각 호스트 함수 호출이 플러그인의 권한 매니페스트에 대해 승인됨

메모리 모델

각 플러그인은 자체 선형 메모리 공간 (기본 64 MB)을 갖습니다. 호스트와 게스트 간 데이터는 명시적 직렬화를 통한 공유 메모리 버퍼로 교환됩니다.

플러그인 생명주기

  1. 로드 -- WASM 바이너리가 로드되고 검증됨
  2. 초기화 -- 플러그인의 init() 함수가 설정과 함께 호출됨
  3. 준비 -- 플러그인이 자신의 기능 (도구, 채널 등)을 등록
  4. 실행 -- 호스트가 필요에 따라 플러그인 함수를 호출
  5. 종료 -- 정리를 위해 플러그인의 shutdown() 함수가 호출됨

관련 페이지

Released under the Apache-2.0 License.