Skip to content

Syndace/python-doubleratchet

Repository files navigation

PyPI PyPI - Python Version Build Status Documentation Status

This repository is actively maintained.

Activity is low at times because this project is already feature-complete, documented and tested.

python-doubleratchet

A Python implementation of the Double Ratchet algorithm.

Installation

Install the latest release using pip (pip install DoubleRatchet) or manually from source by running pip install . in the cloned repository.

Differences to the Specification

This library implements the core of the Double Ratchet specification and includes a few of the recommended algorithms. This library does not currently offer sophisticated decision mechanisms for the deletion of skipped message keys. Skipped message keys are only deleted when the maximum amount is reached, and old keys are deleted from the storage in FIFO order. There is no time-based or event-based deletion.

Testing, Type Checks and Linting

python-doubleratchet uses pytest as its testing framework, mypy for static type checks and both pylint and Flake8 for linting. All tests/checks can be run locally with the following commands:

$ pip install --upgrade .[test,lint]
$ mypy doubleratchet/ examples/ tests/
$ pylint doubleratchet/ examples/ tests/
$ flake8 doubleratchet/ examples/ tests/
$ pytest

Documentation

View the documentation on readthedocs.io or build it locally. Additional requirements to build the docs can be installed using pip install .[docs]. With all dependencies installed, run make html in the docs/ directory. You can find the generated documentation in docs/_build/html/.

About

A Python implementation of the Double Ratchet algorithm.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages