-
데이터 파싱과 직렬화의 경계를 제거하기 위해 개발된 Zero-Copy 이진 직렬화 포맷
- 단일 연속 버퍼 내에서 B-트리 구조로 데이터를 인코딩해, 임의 필드 접근과 수정이
O(log n) 시간에 가능
-
메모리 포맷이 곧 전송 포맷으로 동작해, 별도의 파싱이나 재직렬화 과정 없이 즉시 송수신 가능
- 수신 즉시 키 조회, 값 수정, 전송까지 모두 메모리 복사(
memcpy)만으로 처리
-
스키마 없는(self-describing) 구조로, IDL이나 스키마 정의 없이 사용 가능
-
JSON과 상호 변환 지원, 기존 API·데이터셋과 호환성 확보
- 디버깅 및 메시지 검사 시 JSON 형태로 출력 가능
-
성능 중심 설계
- 캐시 친화적 B-트리 구조와 9.3 kB의 최소 C 구현체로 구성
- SIMD를 사용하는 최고속 JSON 라이브러리 대비 최대 120배, Google Flatbuffers 대비 최대 242배 빠른 성능
- 세계에서 가장 빠른 스키마리스 데이터 포맷 중 하나임
-
기술적 특징
-
제로-카피 읽기/쓰기 지원, 모든 I/O 연산
O(log n) 복잡도
-
포인터 검증 및 런타임 타입 안전성 내장
-
malloc() 사용 안함, 호출자가 버퍼를 직접 제공
-
예측 가능한 지연 시간과 낮은 메모리 사용량
-
C11 (GNU C 문법) 기반, 외부 의존성 없음
- 선택적으로 yyjson을 서브 의존성으로 사용해 JSON 변환 지원
-
API 구성
-
Buffer API: 사용자 제공 버퍼 기반, 메모리 제어 극대화
-
Context API: 메모리 관리 추상화, 단순한 인터페이스 제공
-
비교 및 벤치마크 결과
- JSON, BSON, MessagePack 등 텍스트 포맷 대비 압도적 처리 속도
- Cap’n Proto, Flatbuffers 등 이진 포맷보다 더 높은 유연성과 수정 가능성 제공
- 실제 트위터 API 데이터, Kostya JSON, C++ 직렬화 벤치마크 등에서 최상위 성능 기록
-
보안 설계
-
오버플로 보호 경계 검사, 세대별 포인터 매크로, 재귀 제한, 런타임 타입 검증 포함
- 신뢰할 수 없는 입력 데이터 처리에 적합한 구조
-
활용 컨텍스트
- 고성능 네트워크 메시징, 실시간 데이터 처리, 임베디드 환경 등에서 CPU 효율 극대화
-
C 인터페이스 기반 시스템에서 즉시 적용 가능
-
라이선스 및 확장성
-
MIT 라이선스로 공개, 독립적인 C 구현체
- 향후 언어 바인딩, 압축 벤치마크, 공식 스펙 작성 등 추가 로드맵 있음
-
기원 및 배경
- 2024년 발표된 Lite² 논문에서 제안된 개념을 기반으로, 독립적으로 재구현된 프로젝트
- 이름 Lite³은 Lite²보다 더 가볍다는 의미