위키득계정 ↗
기술

Prost

Prost기술
주요 언어
Rust
대상 형식
Protocol Buffers
정의 문법
proto2와 proto3
코드 생성 도구
prost-build
Prost는 Protocol Buffers 메시지를 Rust에서 다루는 구현이다. proto2와 proto3 정의로 Rust 자료형을 생성하고 속성을 이용해 메시지를 직렬화하거나 역직렬화하며, 기존 Rust 자료형에도 변환 규칙을 추가할 수 있다.

정의에서 Rust 자료형으로

메시지 정의는 Rust 구조체와 필드로 바뀌고 패키지 이름은 모듈 구성에 반영된다. 생성된 코드에 원래 정의의 주석도 남긴다. 정의 파일을 사용하는 방식 외에 기존 자료형에 속성을 추가해 인코딩과 디코딩을 연결할 수 있다.

필드의 표현과 보존

반복 필드는 벡터로 표현하고 선택 여부에 따라 Option을 사용하는 등 메시지 규칙을 Rust 형식에 대응시킨다. 열거형을 역직렬화할 때 알려지지 않은 값도 보존한다. 메시지의 스키마와 언어의 형식 표현을 연결하는 계층이다.

생성과 실행 시점의 구분

prost-build는 정의 파일에서 코드를 생성하는 작업을 담당한다. 기본 구현 자체에 런타임 리플렉션이 포함되는 것은 아니지만 빌드 과정에서 파일 기술자 집합을 출력해 활용할 수 있다. 코드 생성과 실행 중 메시지 변환을 구분해 구성한다.

관련 문서

Serde / Tonic / gRPC / 프로토콜 버퍼 / Rust / 직렬화