FastPFor icon indicating copy to clipboard operation
FastPFor copied to clipboard

Rust Bindings

Open mwlon opened this issue 1 year ago • 9 comments

I'd like to compare against FastPFor, and I'll need it to be accessible in Rust. If no one is able to work on this soon, I could the code part of it myself. If that's the case, I think you should still be the crates.io publisher though; my interest in FastPFor may end up being ephemeral.

mwlon avatar May 28 '24 14:05 mwlon

You are certainly invited to write wrappers in any language you'd like. If you'd like you to publish it but you do not want to maintain the result, I could maybe help find someone. Or, if you are working to solve a temporary issue, you maybe simply keep it private.

lemire avatar May 28 '24 20:05 lemire

Got it. I'll probably write the (bindgen) bindings at some point in the next few weeks and not publish them yet. If you find someone to maintain them, let me know.

mwlon avatar May 29 '24 07:05 mwlon

If you're wrapping c++, bindgen doesn't help much. cxx.rs works quite well.

djellemah avatar May 29 '24 20:05 djellemah

I have also been looking for either rust bindings or a rust port of this algorithm to use in the new map tile compression. A quick github search for FastPFor rust does not produce that much useful info.

I did notice lemire/simdcomp links to bitpacking crate - which might be somewhat relevant?

nyurik avatar Jun 10 '24 04:06 nyurik

Ultimately I decided not to make these myself; I largely want to use ARM, and I realized that isn't supported.

mwlon avatar Jun 22 '24 15:06 mwlon

We do support ARM: https://github.com/lemire/FastPFor/pull/108

lemire avatar Jun 22 '24 19:06 lemire

Ah you should probably update the README then:

Hardware Requirements

We require an x64 platform.

To fully use the library, your processor should support SSSE3. This includes almost every Intel or AMD processor sold after 2006. (Note: the key schemes require merely SSE2.)

Some specific binaries will only run if your processor supports SSE4.1. They have been purely used for specific tests however.

mwlon avatar Jun 22 '24 19:06 mwlon

Ah you should probably update the README then:

Done.

lemire avatar Jun 22 '24 20:06 lemire

Note that we have CI tests under macOS (ARM-based runners).

lemire avatar Jun 22 '24 20:06 lemire

I am going to close this.

lemire avatar Nov 12 '24 14:11 lemire