/keripy

Key Event Receipt Infrastructure - the spec and implementation of the KERI protocol

Primary LanguagePythonApache License 2.0Apache-2.0

Python Implementation of the KERI Core Libraries

Project Name: keripy

PyPi GitHub Actions codecov https://pypi.org/project/keri/ Documentation Status

Installation

Local installation - build from source

Once all dependencies are installed and working then run:

$ python3 -m pip install -e ./

Then you can run

$ kli version

to get a version string similar to the following:

1.0.0

Local installation - Docker build

Run make build-keri to build your docker image.

Then run docker run --pull=never -it --entrypoint /bin/bash weboftrust/keri:1.1.10 and you can run kli version from within the running container to play with KERIpy.

Make sure the image tag matches the version used in the Makefile. We use --pull=never to ensure that docker does not implicitly pull a remote image and relies on the local image tagged during make build-keri.

Dependencies

Binaries

python 3.12.1+ libsodium 1.0.18+

Libsodium installation

After installing with Homebrew you need to link the library to the default location that the ctypes.find_library() looks in, /usr/local/lib, as shown below:

sudo ln -s /opt/homebrew/lib /usr/local/lib

python packages

lmdb 0.98+ pysodium 0.7.5+ blake3 0.1.5+ msgpack 1.0.0+ simplejson 3.17.0+ cbor2 5.1.0+

$ pip3 install -U lmdb pysodium blake3 msgpack simplejson cbor2

or separately

$ pip3 install -U lmdb
$ pip3 install -U pysodium
$ pip3 install -U blake3
$ pip3 install -U msgpack
$ pip3 install -U simplejson
$ pip3 install -U cbor2

Development

Setup

  • Ensure Python 3.12.1 is present along with venv and dev header files;
  • Setup virtual environment: python3 -m venv keripy
  • Activate virtual environment: source keripy/bin/activate
  • Setup dependencies: pip install -r requirements.txt

Testing

  • Install pytest: pip install pytest

  • Run the test suites:

pytest tests/ --ignore tests/demo/
pytest tests/demo/

Building Documentation in /docs

  • Install sphinx:
    • $ pip install sphinx
    • $ pip install myst-parser
  • Build with Sphinx in /docs:
    • $ make html

Publishing containers

Enable the containerd image store

The containerd image store isn't enabled by default. To enable the feature for Docker Desktop:

Navigate to Settings in Docker Desktop. In the General tab, check Use containerd for pulling and storing images. Select Apply & Restart.

make build-keri
make publish-keri