PyRoaringBitMap
PyRoaringBitMap copied to clipboard
No way to do zerocopy deserialize
I'd like to Bitmap.deserialize
from a read-only mmap file which contains a large roaring bitmap. To do that I have to copy the bitmap in to a bytes
by slicing it, because if I use a memoryview instead, I get the error
File "pyroaring/abstract_bitmap.pxi", line 726, in pyroaring.AbstractBitMap.deserialize
TypeError: expected bytes, memoryview found
It should be possible to use the buffer protocol in conjunction with roaring_bitmap_portable_deserialize_safe
This problem is exacerbated if the bitmap is stored inside a much larger file without a size field which might allow slicing out only the bitmap bytes.
It might be nice, by the way, to support the frozen
format for these sorts of purposes to avoid doing a lot of allocations when bitmaps are in read-only mmaps.
Hello and sorry for the delay. I do not have much time presently, so I cannot implement this feature myself, but I would be glad to review any pull request.