unum-cloud / usearch

Fast Open-Source Search & Clustering engine × for Vectors & 🔜 Strings × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram 🔍
https://unum-cloud.github.io/usearch/
Apache License 2.0
1.92k stars 109 forks source link

Feature parity between GoLang and C #409

Open ashvardanian opened 1 month ago

ashvardanian commented 1 month ago

Our GoLang binding for USearch is missing several APIs that are available in the C version. Let's add these to make the GoLang version just as powerful!

Missing APIs:

  1. SerializedLength: Get file size after serialization.
  2. SaveBuffer: Save index to an in-memory buffer.
  3. LoadBuffer: Load index from an in-memory buffer.
  4. ViewBuffer: View index from an in-memory buffer without copying.
  5. Metadata: Load index metadata from a file.
  6. MetadataBuffer: Load index metadata from a buffer.
  7. ExpansionAdd: Get expansion value for index creation.
  8. ExpansionSearch: Get expansion value for search.
  9. ChangeExpansionAdd: Set new expansion value for index creation.
  10. ChangeExpansionSearch: Set new expansion value for search.
  11. HardwareAcceleration: Get SIMD capabilities.
  12. MemoryUsage: Get memory usage of the index.
  13. Distance: Compute distance between two vectors.
  14. ExactSearch: Multi-threaded exact nearest neighbors search.
  15. Rename: Rename a vector to a different key.

Can you contribute to the implementation?

Is your feature request specific to a certain interface?

Other bindings

Contact Details

No response

Is there an existing issue for this?

Code of Conduct

MarkReedZ commented 1 month ago

Working on this