Skip to main content

Rust extension providing Python bindings to the v2 signal groups

Project description

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!⚠️

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

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

signal-groups-0.1.0.tar.gz (9.4 kB view hashes)

Uploaded Source

Built Distributions

signal_groups-0.1.0-cp39-cp39-manylinux2014_x86_64.whl (21.6 MB view hashes)

Uploaded CPython 3.9

signal_groups-0.1.0-cp38-cp38-manylinux2014_x86_64.whl (17.7 MB view hashes)

Uploaded CPython 3.8

signal_groups-0.1.0-cp37-cp37m-manylinux2014_x86_64.whl (13.7 MB view hashes)

Uploaded CPython 3.7m

signal_groups-0.1.0-cp37-cp37m-macosx_10_14_x86_64.whl (21.6 MB view hashes)

Uploaded CPython 3.7m macOS 10.14+ x86-64

Supported by

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