PyRoaringBitMap icon indicating copy to clipboard operation
PyRoaringBitMap copied to clipboard

Roaring64Map support

Open stuarteberg opened this issue 5 years ago • 9 comments

The CRoaring source code includes a C++ file named roaring64map.hh, which begins with the following comment:

/*
A C++ header for 64-bit Roaring Bitmaps, implemented by way of a map of many
32-bit Roaring Bitmaps.
*/

So... do you think it would be possible to add python bindings for Roaring64Map? Or is that not feasible (or not advisable) for some reason?

stuarteberg avatar Jul 06 '20 04:07 stuarteberg

BTW (unrelated): I added a pyroaring recipe to conda-forge, so conda users can now install it with the following command:

conda install -c conda-forge pyroaring

Perhaps that should be mentioned as an installation option in the README?

stuarteberg avatar Jul 06 '20 04:07 stuarteberg

Hello, and sorry for the delay.

It would be nice to have bindings for Roaring64Map. It would be quite a large amount of work though and I do not have much time presently, but if you want to give it a try, go for it!

The conda installation is pretty cool, thanks. Would you want to do a pull request for the README to phrase it yourself?

Ezibenroc avatar Sep 16 '20 16:09 Ezibenroc

Thanks for the response. I don't know if I need 64-bit support after all :-)

Would you want to do a pull request for the README to phrase it yourself?

See #61

I've also opened https://github.com/conda-forge/pyroaring-feedstock/pull/4 to add you as a maintainer to the conda-forge package. I'll merge it if you approve.

stuarteberg avatar Sep 16 '20 16:09 stuarteberg

Thanks for the response. I don't know if I need 64-bit support after all :-)

Alright, I will keep this issue open anyway, in case someone else wants to try ;-)

Ezibenroc avatar Sep 16 '20 18:09 Ezibenroc

I tried to wrap the c++ interface of roaring64map, but struggle to get it build, because I can't set flag -std=c++20 to cpp files only. But then I created a pure python implementation: https://github.com/yihuang/python-roaring64, wrapping PyRoaringBitMap bitmap as inner containers.

yihuang avatar Oct 16 '22 14:10 yihuang

You should not need C++20 to build CRoaring.

lemire avatar Oct 16 '22 16:10 lemire

You should not need C++20 to build CRoaring.

it output some compile error which could be fixed with that flag though, I don't have the exact error message at hand right now. the pure python version is nod bad though, unless one wants the full speed.

yihuang avatar Oct 17 '22 15:10 yihuang