Skip to content

BF16 and Swift SDK for Linux#581

Merged
ashvardanian merged 20 commits intomainfrom
main-dev
Apr 7, 2025
Merged

BF16 and Swift SDK for Linux#581
ashvardanian merged 20 commits intomainfrom
main-dev

Conversation

@ashvardanian
Copy link
Copy Markdown
Contributor

This PR brings a new BF16 interface for adding and retrieving vectors in the C++ SDK and adds a new way to compile Swift bindings on Linux, a much safer Java SDK, and more:

  • Thanks to @danpalmer for rewriting the whole Swift binding 🤗
  • Thanks to @anirudlappathi & @egorovcharenko for bf16 patches 🤗
  • Thanks to @Light-V for noticing type-casting issues in bench.cpp 🤗
  • Thanks to @IoeCmcomc for fixing __delitem__ problem in index.py 🤗
  • Thanks to @agoncharuk for fixing key types in the Java Native Interface 🤗

anirudlappathi and others added 20 commits April 7, 2025 11:48
Closes #553

Co-authored-by: anirudlappathi <anirud.lappathi+anirudlappathi@users.noreply.github.com>
Closes #553

Co-authored-by: Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>
We're about to add a bunch of "try"s around this code. `assert` doesn't support `try`, but XCTAssert does. We use a few variants like XCTAssert Equal/True/Nil.
This PR is a second attempt at #563, but using the C bindings as the basis for Swift interop, rather than the C++ interface. This adds a layer of indirection, but drastically simplifies the interop types. Given that Swift/C++ interop is not yet capable of expressing the necessary types for USearch, this is a better option to split the Objective-C and Swift codebases, and ultimately, to support Swift on Linux.

Co-authored-by: Dan Palmer <202400+danpalmer@users.noreply.github.com>
@ashvardanian ashvardanian merged commit a5b00c3 into main Apr 7, 2025
29 of 31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants