Skip to main content

Python bindings for the userauth library: the anonymous credentials implementation used in OONI

Project description

ooniauth-py

This is the bindings library used to call the anonymous credentials library from Python land

We use this in our backend implement the anonymous credentials protocol in our API

Installation

You can install this library by running:

pip install ooniauth-py

Development requirements

These tools are required to contribute to this library

  1. maturin: Is used to build the library itself, it's heavily used to develop this library

In order to use maturin, you need a virtual environment to manage the resulting Python package during development, see more details here

Testing installation

If you try to run the tests as you usually would with cargo test, you will get linking errors. This happens because Maturin provides a build configuration with all the linking flags required to build the library. However, it does not provide a maturing test command that could help you with this.

A possible solution is to manually specify the linking flags to the compiler, but in order to do this you will probably need to download the specific Python version (3.10). A good way to do this is using Pyenv:

  1. Install Pyenv
  2. Install Python 3.10.0 with pyenv: pyenv install 3.10.0

With the Python version installed, you can create a .cargo/config.toml with the linking flags. Create the file in userauth/.cargo/config.toml and fill the following template:

[target.'cfg(all())']
rustflags = [
    "-C", "link-arg=-Wl,-rpath,<YOUR PYENV PATH HERE>/.pyenv/versions/3.10.0/lib",
    "-C", "link-arg=-L<YOUR PYENV PATH HERE>/.pyenv/versions/3.10.0/lib",
    "-C", "link-arg=-lpython3.10",
]

Example result:

[target.'cfg(all())']
rustflags = [
    "-C", "link-arg=-Wl,-rpath,/home/ooni/.pyenv/versions/3.10.0/lib",
    "-C", "link-arg=-L/home/ooni/.pyenv/versions/3.10.0/lib",
    "-C", "link-arg=-lpython3.10",
]

Note: Make sure to create this file in userauth/.cargo/config.toml and not in userauth/ooniauth-py/.cargo.toml

Usage

  1. Create a ready-to-use .whl to import in python: make wheels
  • Note: You will find the wheels file in: /userauth/ooniauth-py/wheels
  1. Build the library and install it in a virtualenv for trying it in Python: make dev
  • Note: Requires an active virtual environment to install the library
  1. Run tests: make test

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

ooniauth_py-0.1.3-cp310-abi3-manylinux_2_34_x86_64.whl (646.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.34+ x86-64

ooniauth_py-0.1.3-cp310-abi3-macosx_11_0_arm64.whl (580.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

Details for the file ooniauth_py-0.1.3-cp310-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ooniauth_py-0.1.3-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a20a7d6686ac712ea01c8e165241fff2da34ac2c50b614cbb9545ba921eaeade
MD5 da1cb6bc5b3b0e49bf1b944213659de8
BLAKE2b-256 82ff6e4cac9ebaa701f4b21d488e29ec172386c1f8beed7303a527cea89c543e

See more details on using hashes here.

File details

Details for the file ooniauth_py-0.1.3-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ooniauth_py-0.1.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 102ab11ed0fa0b0bd3bbda73a925cfc7f861837179769b16751d9f4a52d89ff2
MD5 9d6a9d6f1f079a8503be8051acedb0d2
BLAKE2b-256 e7ec9f97774212b31977c60ee582397255dda0df3018e52dfa5a377098f16ccf

See more details on using hashes here.

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