Skip to content
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

C# Bindings & broader type-system for Rust #231

Merged
merged 42 commits into from
Aug 28, 2023
Merged

C# Bindings & broader type-system for Rust #231

merged 42 commits into from
Aug 28, 2023

Conversation

ashvardanian
Copy link
Contributor

No description provided.

dranger003 and others added 30 commits August 4, 2023 10:38
…mantic-kernel-integration

160 feature c bindings and semantic kernel integration
…mantic-kernel-integration

C# bindings updates
…mantic-kernel-integration

Add support for usearch_scalar_f16_k.
…mantic-kernel-integration

C# bindings updates
This commit consist of 5 commits squashed into 1,
as they were complitely refactored by next one.

Squashed commits:

* Refactor and add Linux support
* Fix Linux build
* Use ulong instead of int, fix usearch_get and add test
* Add support for usearch_scalar_f16_k
* Fix marshalling of bool as return type, fix marshalling of f16_bits_t vector and add all test runs.
This commit rewrites the 'csharp' directory.
The code in the existing files was used and rewritten.
Exclude temporary folders generated by C# builds.
And fix typo in comments.
Changes:

* Add .yml config for Github Actions for linux, windows, macos environment
* Add command to makefile to build .dll, .dylib dynamic libraries
* Refactor csharp code logic for finding library path based on RID
Changes:

1) Change target framework to netstandard2.0
2) Make code compatible with C# 7
3) Remove Half type due to incompatibility with C# 7
4) setd dotnet default solution in vscode
Replaced dictionary usage with keys and distances .
Thus types are more consistent with C# and C interface.
Note: C# arrays cannot have an index greater than Int.Max32.
…-semantic-kernel-integration

Refactor of C# Bindings
* Set namespace to Cloud.Unum.USearch
* Move USearchException outside of class
* Fix format of some parameters, e.g. from snake_case to camelCase
* Order methods by visibility
* Add EditorConfig settings
* Add standard .gitignore for .NET projects
This commit introduce changes in C# binding.
It contains fixes, massive code refactor, build scripts, docs.

In particular these changes:

- Make: .yml workflow to create artifacts usearch libs
- Make: .yml workflows for build, test, pack, send to nuget
- Make: Build scripts
- Refactor: Change names of dirs, project, code
- Docs: README files with quickstart and for nuget
Change method declarations, add new functions, add tests.
@ashvardanian ashvardanian merged commit 05707f0 into main Aug 28, 2023
14 checks passed
@ashvardanian
Copy link
Contributor Author

🎉 This PR is included in version 2.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants