Software
We have a Roaring Bitmap organization on GitHub counting over 40 programmers. We maintain a portable format specification.
- RoaringBitmap is a widely used, optimized and robust Java library. It supports both regular and off-heap (e.g., memory mapped) bitmaps.
- The CRoaring library is a C/C++ library that provides an optimized implementation of Roaring for C/C++ programmers. It works under Windows (Visual Studio), Linux (ARM and x64) and macOS.
- We have Python libraries wrapping our C code: PyRoaringBitMap and python-croaring.
- We have a Swift library wrapping our C code.
- We have a Rust library wrapping our C code.
- We have a Go library wrapping our C code.
- We have a Node/JavaScript library wrapping our C code.
- We have a WebAssembly library wrapping our C code.
- We have a D library wrapping our C code.
- We have a Redis Module wrapping our C code.
- We have a PostgreSQL Extension wrapping our C code.
- We have a Greenplum Extension wrapping our C code.
- We have a C# library wrapping our C code. It works under Windows and Linux. See also the .NET wrapper around Roaring64Map.
- We have a pure Go implementation of Roaring.
Various ports
In addition to the Java, C/C++, Python and Go versions described above, there are many other ports.
- C++: izenelib by izenecloud
- Cython: Roaring Bitmap in Cython by Andreas van Cranenburgh
- C#: A .NET library for compressed bit set data structures
- C#: A C# implementation of Roaring Bitmap used by RaptorDB
- C#: A .NET Implementation of RoaringBitmap (C#)
- Go: Pilosa has its own Go implementation
- Go: Roaring Bitmaps - compressed bitmaps in Go by Fernando Zandona
- Haskell: Roaring Bitmaps in Haskell by Thomas Sutton
- Java: Apache Lucene has a Roaring bitmap implementation (source code)
- OCaml: Roaring bitmaps for OCaml
- Python: The Whoosh search engine uses Roaring (source code)
- Python: Basic roaring bitmap in Python by Tomáš Maršálek