-
Notifications
You must be signed in to change notification settings - Fork 144
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
feat: iOS Bindings #846
feat: iOS Bindings #846
Conversation
ef59418
to
d09b089
Compare
@ElusAegis wasm tests are currently cooked because of relative imports :) |
d09b089
to
b31ad4f
Compare
@alexander-camuto I think this is ready for another review Key Updates since last review:
Next Steps:
|
@ElusAegis a few conflicts to resolve given the reusable verifier merge and then will merge in |
…f compilation warnings
…e more logic between wasm and universal bindings
…unt of dependencies
…o longer have large files
Removed import that was never compiled but was invalid
…swift-package repo
Fixed how we patch the `halo2_proofs` dependency to stop the resolution error.
1b3654a
to
9f370ee
Compare
PR: Integrating iOS Bindings for the EZKL Library
This PR introduces iOS bindings for the EZKL library, developed using the uniffi package. This package facilitates the generation of bindings for multiple platforms, including iOS (Swift), as well as Android (Kotlin, Java), Python, and Ruby.
Key Updates:
bindings
module to consolidate all bindings, moving the previously existingpython
andwasm
bindings under it.bindings/universal
module containinguniffi
-compatible bindings. These bindings implement most functions by reusing code from the existingwasm
bindings.wasm
bindings to leverage the shared code from theuniversal
bindings.bin/ios_gen_bindings
to generate iOS bindings and package them for integration into iOS projects..github/workflows/update-ios-package.yml
to test the bindings and automatically update the iOS package with the latest bindings when a new release of EZKL comes out.Next Steps:
We should consider migrating the iOS EZKL package under the zkonduit organization to better streamline the development process.
Future Considerations:
A larger refactor could further simplify the code by avoiding the need to use
cfg(not(any(target_os = "ios", target_arch = "wasm32")))
for functions that should be excluded from the bindings. Moving such functions into a separate module would reduce the number of changes introduced by this PR and improve code clarity.