8P by xguru 11시간전 | ★ favorite | 댓글과 토론
  • Apache Parquet 포맷을 C 환경에서 직접 지원하기 위해 개발된 프로덕션 수준의 순수 C 구현체 라이브러리
  • C11 표준 기반으로 작성되어, C++ 런타임이나 예외 처리 없이 동작하며 zstd와 zlib만 외부 의존성으로 사용
  • 임베디드 시스템, IoT, 마이크로컨트롤러, 레거시 환경 등 제약된 환경에서의 데이터 처리에 적합
  • 바이너리 크기 약 200KB로, Apache Arrow 대비 50MB 이상 작고 경량화된 빌드
  • SIMD 최적화(SSE4.2, AVX2, AVX-512, NEON, SVE)런타임 자동 감지 기능으로 다양한 아키텍처 지원
  • 모든 물리 타입(BOOLEAN, INT32, DOUBLE 등)다양한 인코딩 및 압축 코덱(ZSTD, LZ4, SNAPPY, GZIP) 지원
  • Big-Endian 시스템(s390x, SPARC, PowerPC 등) 에서도 올바른 바이트 순서 처리 지원
  • Nullable 컬럼, 기본 중첩 스키마, CRC32 페이지 검증, 컬럼 통계, 메모리 매핑 I/O, OpenMP 병렬 읽기 등 프로덕션 기능 포함
  • 스트리밍 API로 대용량 파일을 메모리 전체 로드 없이 처리 가능
  • PyArrow와 완전 호환, Python 환경과 상호 읽기·쓰기 지원
  • Apache Arrow와 비교 시
    • ARM 환경에서 쓰기 속도 1.5~5배 빠름, 읽기 속도도 최대 1.3배 향상
    • x86 환경에서는 읽기 속도 다소 느리지만, 파일 크기 약 1.4배 더 작음
    • 의존성 최소화, 빌드 단순화, C 전용 환경 통합성이 주요 강점
    • 복잡한 중첩 타입, 암호화, 멀티스레드 ZSTD 해제는 미지원
  • PyArrow, DuckDB, fastparquet와 상호 테스트 검증 완료
  • Spark, DuckDB에서도 Carquet 생성 파일 직접 읽기 가능
  • Linux, macOS, Windows, POSIX 시스템 지원
  • MIT 라이선스