Skip to content

hyperledger/aries-uniffi-wrappers

Aries uniffi wrappers

This repository contains the wrappers for the following libraries:

The wrappers are generated using UniFFI. UniFFI can generate several language bindings including Swift, Kotlin, and Python. Kotlin wrappers are generated with uniffi-kotlin-multiplatform-bindings.

Usage

Swift

The Swift wrappers are distributed as a Swift Package. To use the wrappers in your project, add the following dependency to your Package.swift:

    .package(url: "https://github.com/hyperledger/aries-uniffi-wrappers", from: "0.1.0"),

And add the following dependency to your target:

    .target(
        name: "MyTarget",
        dependencies: [
            .product(name: "AriesAskar", package: "aries-uniffi-wrappers"),
            .product(name: "AnonCreds", package: "aries-uniffi-wrappers"),
            .product(name: "IndyVdr", package: "aries-uniffi-wrappers"),
        ]
    ),

Take a look at the tests in swift/Tests directory for examples on how to use the wrappers.

Kotlin

The Kotlin wrappers are distributed as a Maven package hosted by GitHub Packages. To add a github packages repository in a seperate project you will have to have a github token with read:packages permissions. Then you will add the repository to your build.gradle.kts like so:

    repositories {
        mavenCentral()
        google()
        maven {
            setUrl("https://maven.pkg.github.com/hyperledger/aries-uniffi-wrappers")
            credentials {
                username = getExtraString("githubUsername")
                password = getExtraString("githubToken")
            }
        }
    }

Now you will add the libraries as a dependency in your build.gradle.kts like so:

    dependencies {
        implementation("org.hyperledger:anoncreds_uniffi:0.1.1-wrapper.1")
        implementation("org.hyperledger:indy_vdr_uniffi:0.1.1-wrapper.1")
        implementation("org.hyperledger:askar_uniffi:0.1.1-wrapper.1")
    }

Take a look at the tests in kotlin/${library}/src/commonTest for usage examples.

Contributing

Pull requests are welcome! We enforce developer certificate of origin (DCO) commit signing. See guidance here.

Please see our Developer Guide for more information.

License

Aries uniffi wrappers are licensed under the Apache License 2.0.