# roaring

> roaring, a magmalake tin: Pure-Mojo Roaring bitmaps, 32- and 64-bit, implementing the portable RoaringFormatSpec serialization plus Iceberg's deletion-vector v1 blob framing.

[magmalake](https://magmalake.dev/) [roaring](https://magmalake.dev/s/roaring)

Pure-Mojo Roaring bitmaps, 32- and 64-bit, implementing the portable RoaringFormatSpec serialization plus Iceberg's deletion-vector v1 blob framing.

Install

mojoshelf:

```
pixi shelf add roaring-mojo
```

`pixi shelf` comes with mojoshelf: [install it first](https://mojoshelf.org/getting-started).

plain pixi:

```
pixi init app -c https://conda.modular.com/max -c conda-forge && cd app
sed -i.bak 's/^\[workspace\]/[workspace]\npreview = ["pixi-build"]/' pixi.toml
pixi add "mojo-compiler==1.2.0"
# Without mojoshelf: the tin as a git dependency at its published commit.
# Transitive dependencies may be wrong: pixi takes the tin's own git deps as
# pinned in its pixi.toml, which may not match what other tins pin, and then
# fails with "duplicate records". mojoshelf picks revisions that agree.
pixi add roaring-mojo --git https://github.com/magmalake/roaring.mojo --rev a90a7bd30cf1c21403a29059282072e93fbeeee2
```

No mojoshelf needed. If pixi reports duplicate records, the mojoshelf tab picks revisions that agree.

Version

`0.1.3` on mojoshelf

Source

[GitHub](https://github.com/magmalake/roaring.mojo) [README](https://github.com/magmalake/roaring.mojo#readme) [Benchmark history](https://magmalake.github.io/roaring.mojo/benchmarks/)

## Works today

- Bitmap32 and Bitmap64 with array, bitset and run containers
- Portable serialization including the 64-bit extension
- Iceberg deletion-vector blob framing with its own CRC-32
- No dependencies

Checked against pyroaring, byte-exact in both directions

Byte-exact against pyroaring in both directions, with pyroaring-produced payloads baked into the tests as constants so the oracle cannot drift.

- [parquet](https://magmalake.dev/s/parquet) read · write · every encoding · Arrow out
- [parquet-full](https://magmalake.dev/s/parquet-full) parquet · plus ZSTD, BROTLI and LZ4
- [avro](https://magmalake.dev/s/avro) object container files, both ways
- [arrow-mlake](https://magmalake.dev/s/arrow-mlake) Arrow layout · C Data Interface · IPC
- [Every tin](https://magmalake.dev/tins)

[A magmalake project](https://magmalake.dev/)

Apache 2.0 · © 2026 Marius Seritan
