위키득계정 ↗
기술

Cap’n Proto

Cap’n Proto기술
개발자
Kenton Varda
제공 기능
자료 교환과 원격 호출
포인터 표현
메시지 내부의 상대 위치
선택 기능
전송 크기를 줄이는 패킹
Cap’n Proto는 자료 교환 형식과 메모리 내 표현을 공통으로 사용하도록 설계한 직렬화 및 원격 호출 체계다. 메시지 전체를 다른 객체 형태로 풀지 않고 필요한 필드에 접근하는 방식을 제공한다.

같은 표현으로 읽고 전달하기

메시지의 배치는 메모리 접근과 전송을 함께 고려한다. 필드의 크기와 위치 및 정렬을 정하고, 위치가 달라져도 메시지를 사용할 수 있도록 절대 주소 대신 상대 위치를 사용한다.

선택적인 자료 접근

메시지의 특정 필드만 읽을 수 있어 전체 내용을 먼저 변환할 필요를 줄인다. 생성된 접근 코드는 포인터의 범위를 확인하면서 메시지 안의 자료를 따라간다.

패킹과 원래 표현

고정 크기 필드와 정렬 때문에 빈 바이트가 생길 수 있다. 전송량이 중요한 경우에는 패킹을 적용해 이런 바이트를 줄일 수 있으며, 이는 원래 메모리 배치와 구분되는 추가 표현이다.

관련 문서

FlatBuffers / 프로토콜 버퍼 / Apache Avro / Apache Arrow / 직렬화 / 데이터 압축