Equilibrium / Selected work / Zcash UniFFI Library

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.

Completed
Client Zcash Community Grants
Ecosystems Zcash
Stack Rust · Swift · Kotlin · Python · Ruby
Delivered by Eiger (now Equilibrium)

Overview

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 equilibriumco org.

Status

Completed and delivered in 2023; public and open source at github.com/equilibriumco/uniffi-zcash-lib.