RoaringBitmap/CRoaring
FreeRoaring bitmaps in C (and C++), with SIMD (AVX2, AVX-512 and NEON) optimizations: used by Apache Doris, ClickHouse, Alibaba Tair, Redpanda, YDB and StarRocks
FreeFree tier
About RoaringBitmap/CRoaring
CRoaring is a portable C and C++ library for compressed bitmaps, known as Roaring bitmaps. It offers SIMD optimizations (AVX2, AVX-512, NEON) and supports multiple compilers (GNU GCC, LLVM clang, Visual Studio, Apple Xcode, Intel oneAPI). Roaring bitmaps outperform traditional compressed bitmaps like WAH, EWAH, and Concise. The library is used in production by major systems including Apache Doris, ClickHouse, Alibaba Tair, Redpanda, YDB, and StarRocks. It provides a serialized format for interoperability between different programming languages.
Key Features
SIMD optimizations (AVX2, AVX-512, NEON) for high performance
Portable across major compilers (GCC, Clang, Visual Studio, Xcode, Intel oneAPI)
C and C++ API support
Amalgamation support (single header/source file for easy integration)
Serialized format for interoperability between different Roaring implementations
Custom memory allocator support
64-bit Roaring bitmap support
Pros & Cons
Pros
- Outperforms traditional compressed bitmaps (WAH, EWAH, Concise)
- Widely adopted in production by major systems (Apache Doris, ClickHouse, etc.)
- Portable across operating systems and compilers
- SIMD acceleration for modern CPUs
- Language interoperability via serialization format
Best For
Database indexing and query accelerationSearch engine bitmap compressionReal-time analytics systemsLarge-scale data processing and storageIn-memory data structure for fast set operations