Skip to content
This repository was archived by the owner on Dec 10, 2023. It is now read-only.

freedomofpress/signal-groups

Repository files navigation

signal-groups

CircleCI

Experimental Python bindings to Signal's v2 groups implementation zkgroup. This project provides a Rust extension using PyO3 to define a signal_groups Python module. See here for a fundamental limitation storing secrets in Python-allocated memory.

⚠️USE AT YOUR OWN RISK!⚠️

Installation

To use the wheel distributions you do not need the Rust toolchain installed. To install, run:

pip install signal-groups

Developer Getting Started

You will need both Rust and Python 3.7+ installed on your system. To install the project in your virtualenv:

pip install -r requirements.txt
python setup.py develop

Then run the tests via pytest -v tests/ to confirm all is working. Tests are (mostly) ported to Python from the upstream crate. You can use the tests as a reference for how to use the library (start with the integration tests).

When developing, simply run python setup.py develop as you make changes to rebuild the library. This script will handle compilation on the Rust side.

Building wheels

See instructions here. In brief:

docker pull quay.io/pypa/manylinux2014_x86_64
docker run --rm -v `pwd`:/io quay.io/pypa/manylinux2014_x86_64 /io/build-wheels.sh

About

python bindings to signal's zkgroup

Resources

License

Code of conduct

Stars

Watchers

Forks