Skip to content

spruceid/didkit-python

Repository files navigation

PyPI version

Check out the DIDKit documentation here.

DIDKit Python

DIDKit provides Verifiable Credential and Decentralized Identifier functionality across different platforms. It was written primarily in Rust due to Rust's expressive type system, memory safety, simple dependency web, and suitability across different platforms including embedded systems. DIDKit embeds the ssi library, which contains the core functionality.

Installation and Usage

DIDKit is available on PyPI.

You can install it globally with:

$ pip install -U didkit

asyncio is required, meaning you will need Python 3.7 or above.

Build from Source

$ maturin build

You can install maturin with pip install maturin.

Now the wheel should be in the target directory.

Custom Builds

To enable or disable certain features of DIDKit, or use different cryptography backends, you will need edit the Cargo.toml.

Development

When adding a function or changing the signature of an existing one, make sure to reflect the changes in the stub file. This is important for static analysis and IDE support. (This will be automated in the future.)

Test

poetry install
poetry run maturin develop
poetry run pytest

Migration

0.2 to 0.3

Functions have kept the same signatures, but some have become asynchronous. You will need to start using asyncio if it is not already the case.

Maturity Disclaimer

Please note: this readme documents an early-stage open-source product ported manually to python, and we are still incorporating feedback from our first comprehensive third-party code audit. These artefacts are presented as functional "betas" for experimentation and to show the direction of the project (inviting proposals for changes of direction, even!). They are not, however, intended for transacting real-world business yet.