- 콘텐츠 전송과 임베디드 시스템의 읽기 성능 병목을 해결하기 위해 설계
-
한 번 압축하고 여러 번 해제(Read-Many) 하는 구조에 맞춰, 인코더가 복잡도를 담당하고 디코더는 최대 처리량을 확보
- LZ4 대비 디코딩 속도 40% 이상 향상(애플 실리콘) , 20% 이상 향상 (클라우드용 ARM칩인 Google Axion) , x86_64에서도 5% 이상 향상
-
lzbench 마스터 브랜치에 공식 통합되어, 이제 표준 벤치마크로 독립 검증 가능
- 기존 코덱의 대칭 속도(LZ4) 와 압축 효율(Zstd) 간 절충 문제를 해결하는 비대칭 효율성(Asymmetric Efficiency) 중심 설계
- 인코더는 명령 파이프라인 및 분기 예측 최적화를 위해 CPU 구조(특히 ARMv8)에 맞춘 비트스트림 생성
- 디코더는 단순화되어 런타임 처리량 극대화
-
벤치마크:
- Apple M2 기준, ZXC는 LZ4 대비 최대 1.9배 빠른 디코딩, Zstd 대비 2.7배 빠른 처리량
- Google Axion(ARM Neoverse V2)에서도 1.6~2.5배 빠른 해제 속도 유지
- x86_64(AMD EPYC) 환경에서도 최대 2.2배 빠른 디코딩 성능 확보
-
5단계의 압축 레벨로 구성
- Level 1–2(빠름): 게임/UI등 실시간 애셋용, LZ4보다 약 40% 빠른 로딩
- Level 3–4(균형): 속도와 비율의 균형
- Level 5(컴팩트): 펌웨어·임베디드용, Zstd보다 빠르고 LZ4보다 높은 압축률
-
API 및 CLI 지원
-
CLI: 애셋 수동 압축·벤치마크용 명령 제공 (
zxc -z, zxc -d, zxc -b)
-
API: 완전한 스레드 세이프(stateless) 구조로 바인딩에 친화된 API 제공
-
스트리밍 API: 대용량 파일 병렬 처리 지원, 자동 스레드 감지 및 체크섬 검증 포함
-
Sans-IO 구조로 설계되어, 언어별 I/O 드라이버를 직접 구현 가능 (
zxc_sans_io.h 기반)
-
품질 및 안정성 보장
-
지속적 퍼징(ClusterFuzzLite)
-
정적 분석(CPPChecker, Clang)
-
동적 검증(Valgrind, ASan/UBSan)
- 모든 연산에서 명시적 버퍼 용량 지정을 요구하는 안전한 API 구조
- BSD 3-Clause License