Go to file
str4d d868283ca3 make xcframework 2025-04-04 10:21:17 +00:00
.github/workflows CI: Enable general Rust caching 2025-03-01 09:40:39 +13:00
releases/XCFramework/libzcashlc.xcframework make xcframework 2025-04-04 10:21:17 +00:00
rust Fix bug in `zcashlc_tor_lwd_conn_fetch_transaction` error sentinel 2025-04-04 09:24:36 +00:00
support FFI 0.8.1 2024-06-14 10:48:33 +01:00
.gitignore
CHANGELOG.md Fix bug in `zcashlc_tor_lwd_conn_fetch_transaction` error sentinel 2025-04-04 09:24:36 +00:00
CONTRIBUTING.md
LICENSE
Makefile Add dummy `Info.plist` to platform frameworks 2024-04-16 19:14:09 +01:00
Package.swift [#34] Additional change to fix SwiftPackageManager deprecation Warning (#80) (#82) 2023-02-02 09:16:10 -03:00
README.md Update the README to refer to version 0.13.0 2025-03-04 11:44:19 -07:00
zizmor.yml CI: Use sccache to speed up binary preview builds 2025-02-14 12:24:39 +13:00

README.md

zcash-light-client-ffi

This project is designed for two things:

  1. Provide language bindings for the zcash rust library, in the rust directory.
  2. Packaging for common dependency managers within those language eco systems.

Currently implemented is building for apple platforms as an xcframework and for distribution via Swift Package Manager.

importing the package

Add the package as a dependency

dependencies: [
  .package(url: "https://github.com/Electric-Coin-Company/zcash-light-client-ffi", exact: "0.13.0")
  // other dependencies
]

and reference it as product in the target that it will be used

targets: [
        .target(
            name: "MyTarget",
            dependencies: [
                .product(name: "libzcashlc", package: "zcash-light-client-ffi")
            ],

Building

Pre-requisites

Most of the building is done with the rust compiler, and depending on the target will need different toolchains. To install these you will need to install rustup. Once this is installed, the rest of the dependencies can be installed by running make install.

XCFramework

Currently the only build product that is supported. This can be built with make xcframework and the result will be in releases/XCFramework/libzcashlc.xcframework.

Depending on what state the intermediate build products might be in, you may first want to do make clean to do a clean build.

Releasing

Swift Package Manager

  1. Build the framework as described above.
  2. Commit the result.
  3. Tag this commit with the new release version, (following semantic versioning).
  4. Push the commit and tag to the remote repository.

License

Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT).