Zcash UniFFI Library
Cross-language FFI bindings for Zcash's Rust libraries (Swift, Kotlin, Python, Ruby) using Mozilla's UniFFI, enabling native-language access for mobile and wallet development.
CompletedOverview
Equilibrium built the Zcash UniFFI Library — cross-language FFI (Foreign Function Interface) bindings for Zcash’s Rust codebase using Mozilla’s UniFFI framework — funded by Zcash Community Grants (via an RFP). It lets developers working in Swift, Kotlin, Python and Ruby call Zcash functionality directly from their own language, rather than reimplementing Zcash primitives.
This matters most for mobile wallet development, where native-language access to Zcash primitives (Swift on iOS, Kotlin on Android) is essential, lowering the barrier to building Zcash wallets and tooling.
Deliverables
- UniFFI-based cross-language bindings for the Zcash Rust libraries.
- Swift, Kotlin, Python and Ruby binding targets.
- Public blog post and presentation unveiling the library.
Technical highlights
- Exposed a Rust codebase to multiple host languages from a single binding definition using Mozilla’s UniFFI — one source of truth, many language targets.
- Prioritized the mobile targets (Swift / Kotlin) that wallet developers need, plus Python and Ruby for scripting and tooling.
- Released as open source under the
equilibriumcoorg.
Status
Completed and delivered in 2023; public and open source at
github.com/equilibriumco/uniffi-zcash-lib.