RoaringBitmap/CRoaring logo

RoaringBitmap/CRoaring

Free

Roaring 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
Type
Open Source

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