-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support binary indexes #76
Comments
Thank you for your interest in these bindings! While this crate builds against a version of Faiss with support for binary indexes, it is worth remembering that it targets the C API exclusively. Faiss did not support binary indexes when I first worked on the C API, and this API is not updated in lockstep with the rest of the library. In other words, the work on extending faiss-rs to support binary indexes needs to start at the main Faiss repository. I happen to have found a tracking issue. Should you be interested in fulfilling this, I can provide some assistance there. |
Oh, my mistake, turns out that Faiss already has its C API extended to support binary indexes. So at this end, what we need to do is:
|
Thanks so much for initiating this work in #77. I would love to be able to help out with this endeavour. I'll base my changes on top of Not sure if I'm tall enough to write unsafe Rust but I'll give it a shot anyway. Your reviews and guidance will always be appreciated! |
Okay! There's some careful copypasta work in #79 that covers the base PS: This is my first foray into getting C++ to behave nicely with Rust so some things could be broken but I have to say this project is so well written/maintained that suprisingly, I'm having a pleasant time getting it all working together (barring my broken cublas install on Fedora 38 which forces me to generate bindings on a |
On a second thought, I'll keep the naming convention the same as the C++ api (i.e. |
So I went ahead and got the unrelated: I prefer to use Earthly in my fork for faster feedback loop on generating bindings and running tests. If needed I can get rid of it in a final polish before merge. To generate bindings locally, make sure the submodule is initialized and then run |
Hi there!
Thanks for maintaining these bindings!
So, iiuc
faiss
has had support for binary indexes sincev1.6.2
andfaiss-rs
is built againstv1.7.2
so I naturally assumed I'd havefaiss::read_index_binary
, etc methods available but that doesn't seem to be the case.I'm not very well-versed with bindings and the whole C++-Rust interop so correct me if I'm wrong but I believe we're currently just not generating bindings for the binary indexes.
If getting this to work might not be a tall order, then would you be interested in guiding me so that I can contribute?
Thanks!
The text was updated successfully, but these errors were encountered: