cfm / signal-groups

python bindings to signal's zkgroup

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:GNU General Public License v3.0


Languages

Language:Rust 82.3%Language:Python 17.3%Language:Shell 0.4%