-
Notifications
You must be signed in to change notification settings - Fork 108
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
Feature: C# bindings and Semantic Kernel integration #160
Comments
A couple of recommendations from @dluc:
|
Looking forward to this, in particular the disk based index feature. Let me know if I can help! :-) |
@AleksandrKent has already made some great progress on the Python side . C# next. @dluc, for compatibility and simplicity, we currently put metadata into Parquet files on disk, but integrating UStore down the road would make more sense. |
Hi there, I've taken an initial take on some C# bindings, feel free to use any of it if you think this can be useful. |
Oh, wow! Great to have you with us @dranger003! We are also halfway through with those, probably makes sense to sync up and merge the progress. @AleksandrKent, how is your fork doing? |
@dranger003 would you like to merge your progress into the main repo under the |
Thank you, @dranger003! We will continue from there and will release a NuGet package on GitHub. |
Hey @dranger003 and @ashvardanian, I've pushed my version of the USearchNetWrapper. I'd appreciate any feedback or suggestions on how we can integrate our contributions. Here's a brief overview of what I've done:
Moving forward, here are the tasks I've identified:
Looking forward to your thoughts! |
Hi @AleksandrKent, great work on interop code! I only focused on the low level P/Invoke calls, which have been pulled. Maybe you can sync up and adjust your wrapper? There are few more things I think I need to clean in the interop layer:
|
@dranger003 and @AleksandrKent, is there support for |
@ashvardanian Yes, I sent another pull request to add |
Hi @dranger003 and @ashvardanian, I've got a few thoughts. We're using dynamic libraries for C# bindings. What if we added these to the NuGet package? There's guidance in Microsoft's docs. This might lead us to move libusearch build scripts from .csproj to GitHub Actions. My recent work on C# bindings isn't aligning with our feature branch. I thought of creating a separate C# interface for lib, but maybe the current C lib interface is good for NuGet. @dranger003, can you wrap up your work as a NuGet package? When we start Semantic Kernel integration, I might be more useful. Should we open a new issue for it once NuGet is ready? Keen to hear your thoughts. |
Hi @dranger003 and @ashvardanian, I've been reviewing the recent progress on the C# bindings, and I have some thoughts and suggestions to discuss:
I'm eager to hear your thoughts on these points, and I'm ready to assist with any refactoring based on our considerations. |
@AleksandrKent, those suggestions sound great! @dranger003 and @dluc, any objections? |
@AleksandrKent These are great recommendations! I will let you and your team handle the code from here as this is representing more time investment than I currently have available. And I am planning to continue monitoring the evolution of the code, thanks for all the insights! |
@dranger003, okay! I greatly appreciate your contributions -- your approach has given me insights into some new techniques and boosted development. I'll take a closer look at the code and refactor it a bit then. |
Describe what you are looking for
With most of the common programming languages covered, the only major one we don't have bindings for is C#.
Having that will open doors to integrate USearch into Semantic Kernel C# backend, as well as a number of Unity applications.
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
The text was updated successfully, but these errors were encountered: