- Thư viện triển khai C thuần ở cấp độ production được phát triển để hỗ trợ trực tiếp định dạng Apache Parquet trong môi trường C
- Được viết dựa trên chuẩn C11, hoạt động không cần runtime C++ hay xử lý ngoại lệ, và chỉ dùng zstd và zlib làm phụ thuộc bên ngoài
- Phù hợp cho xử lý dữ liệu trong các môi trường bị hạn chế như hệ thống nhúng, IoT, vi điều khiển và môi trường legacy
- Với kích thước nhị phân khoảng 200KB, đây là bản dựng nhẹ hơn Apache Arrow hơn 50MB
- Hỗ trợ nhiều kiến trúc nhờ tối ưu hóa SIMD (SSE4.2, AVX2, AVX-512, NEON, SVE) và tính năng tự động phát hiện lúc chạy
- Hỗ trợ mọi kiểu vật lý (BOOLEAN, INT32, DOUBLE, v.v.) cùng nhiều codec mã hóa và nén (ZSTD, LZ4, SNAPPY, GZIP)
- Hỗ trợ xử lý đúng thứ tự byte cả trên các hệ thống Big-Endian (s390x, SPARC, PowerPC, v.v.)
- Bao gồm các tính năng production như cột nullable, schema lồng cơ bản, kiểm tra trang CRC32, thống kê cột, I/O ánh xạ bộ nhớ, đọc song song bằng OpenMP
- Streaming API cho phép xử lý tệp lớn mà không cần nạp toàn bộ vào bộ nhớ
- Tương thích hoàn toàn với PyArrow, hỗ trợ đọc và ghi qua lại trong môi trường Python
- Khi so sánh với Apache Arrow
- Trên môi trường ARM, tốc độ ghi nhanh hơn 1.5~5 lần, tốc độ đọc cũng cải thiện tối đa 1.3 lần
- Trên môi trường x86, tốc độ đọc có phần chậm hơn, nhưng kích thước tệp nhỏ hơn khoảng 1.4 lần
- Tối thiểu hóa phụ thuộc, đơn giản hóa build, khả năng tích hợp trong môi trường chỉ dùng C là các thế mạnh chính
- Chưa hỗ trợ kiểu lồng phức tạp, mã hóa, giải nén ZSTD đa luồng
- Đã hoàn tất kiểm chứng tương thích qua kiểm thử chéo với PyArrow, DuckDB, fastparquet
- Spark, DuckDB cũng có thể đọc trực tiếp các tệp do Carquet tạo ra
- Hỗ trợ Linux, macOS, Windows, hệ thống POSIX
- Giấy phép MIT
Chưa có bình luận nào.