Closed pplanel closed 5 months ago
Hi, @pplanel! Thanks a lot for your effort!
There are a couple of things that catch the eye:
Please let me know if you'd have time to patch those 🤗
Hey, @ashvardanian. Thanks for your feedback! I have addressed the points you raised, added docs and benchmark.
Oh, and I updated the crate folder structure based on StringZilla and USearch crates.
:tada: This PR is included in version 3.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:
This pull request is the beginning of the Rust binding implementation. I would like guidance on reexporting the library's functionalities.
This draft was created based on the header present in the
golang
binding.If you have any specific questions or need guidance on a particular aspect of the implementation, feel free to provide more details, and I'll do my best to assist you!
Description
This pull request adds Rust bindings for the simsimd C++ library. The Rust code is generated using the
bindgen
crate, and the build process includes compiling the C++ source file into a static library. The Rust bindings provide utility functions for cosine, inner product, and squared Euclidean distance based on the Golang Cgo header file.Changes Made
build.rs
) to generate Rust bindings and compile C++ source.include/reexport.h
) for simsimd library.lib.rs
..gitignore
to exclude generated Rust build artifacts.Checklist