Tins · File formats
roaring
Pure-Mojo Roaring bitmaps, 32- and 64-bit, implementing the portable RoaringFormatSpec serialization plus Iceberg's deletion-vector v1 blob framing.
Install
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
What it does
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
Correctness
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.
Also in File formats
- parquet read · write · every encoding · Arrow out
- parquet-full parquet · plus ZSTD, BROTLI and LZ4
- avro object container files, both ways
- arrow-mlake Arrow layout · C Data Interface · IPC
- Every tin