Skip to main content

A Python implementation of the Double Ratchet algorithm.

Project description

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/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doubleratchet-1.3.0.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doubleratchet-1.3.0-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file doubleratchet-1.3.0.tar.gz.

File metadata

  • Download URL: doubleratchet-1.3.0.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for doubleratchet-1.3.0.tar.gz
Algorithm Hash digest
SHA256 54b895315fbabb4a9a078c3310fdc7e81579826bbfafccf80abdf6335a95962c
MD5 a64ec71b00f51a6148b752fdbdc0fc90
BLAKE2b-256 81990710c83f522aeba7a33d49f7ba7dbab39a01788ba815ae59b76ea86e8b3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for doubleratchet-1.3.0.tar.gz:

Publisher: test-and-publish.yml on Syndace/python-doubleratchet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doubleratchet-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: doubleratchet-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 28.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for doubleratchet-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a869c81aa175abd9d7cfcf0069a0fa1261116b2ff2684c1ac95a1b83b875b18d
MD5 2b0efb38a5246ddd88f996007bcdd378
BLAKE2b-256 8e50d5769527876b1b2c2883eeb7307dd1509be1162e55b16799b55b3bd5b7b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for doubleratchet-1.3.0-py3-none-any.whl:

Publisher: test-and-publish.yml on Syndace/python-doubleratchet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page