usearch icon indicating copy to clipboard operation
usearch copied to clipboard

Feature parity between GoLang and C

Open ashvardanian opened this issue 9 months ago • 1 comments

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?

  • [X] I can contribute

Is your feature request specific to a certain interface?

Other bindings

Contact Details

No response

Is there an existing issue for this?

  • [X] I have searched the existing issues

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

ashvardanian avatar May 16 '24 00:05 ashvardanian

Working on this

MarkReedZ avatar Jun 01 '24 18:06 MarkReedZ