a pluggable library of differentially private algorithms and mechanisms for releasing privacy preserving queries and statistics
Project description
WhiteNoise Core
Differential Privacy Library Python Bindings
The python bindings are a sub-project of Whitenoise-Core. See also the accompanying WhiteNoise-System and WhiteNoise-Samples repositories for this system.
Differential privacy is the gold standard definition of privacy protection. The WhiteNoise project aims to connect theoretical solutions from the academic community with the practical lessons learned from real-world deployments, to make differential privacy broadly accessible to future deployments. Specifically, we provide several basic building blocks that can be used by people involved with sensitive data, with implementations based on vetted and mature differential privacy research. In WhiteNoise Core, we provide a pluggable open source library of differentially private algorithms and mechanisms for releasing privacy preserving queries and statistics, as well as APIs for defining an analysis and a validator for evaluating these analyses and composing the total privacy loss on a dataset.
This library provides an easy-to-use interface for building analyses.
Differentially private computations are specified as a protobuf analysis graph that can be validated and executed to produce differentially private releases of data.
- More about WhiteNoise Core Python Bindings
- Installation
- WhiteNoise Rust Documentation
- Communication
- Releases and Contributing
More about WhiteNoise Core Python Bindings
Components
For a full listing of the extensive set of components available in the library see this documentation.
Architecture
The Whitenoise-core system architecture is described in the parent project. This package is an instance of the language bindings. The purpose of the language bindings is to provide a straightforward programming interface to Python for building and releasing analyses.
Logic for determining if a component releases differentially private data, as well as the scaling of noise, property tracking, and accuracy estimates are handled by a native rust library called the Validator. The actual execution of the components in the analysis is handled by a native Rust runtime.
Installation
Binaries
- (forthcoming PyPi binaries via milksnake)
From Source
-
Clone the repository
git clone $REPOSITORY_URI --recurse-submodules
-
Install Whitenoise-core dependencies
https://github.com/opendifferentialprivacy/whitenoise-core#installation -
Generate code
python3 scripts/code_generation.py
-
Install the python bindings
pip install -e ".[test,plotting]"
I recommend using
scripts/debug_*.sh
if you are developing the package.
Documentation
Communication
(In process.)
Releases and Contributing
Please let us know if you encounter a bug by creating an issue.
We appreciate all contributions. We welcome pull requests with bug-fixes without prior discussion.
If you plan to contribute new features, utility functions or extensions to the core, please first open an issue and discuss the feature with us.
- Sending a PR without discussion might end up resulting in a rejected PR, because we might be taking the core in a different direction than you might be aware of.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file opendp_whitenoise_core-0.1.3-py2.py3-none-any.whl
.
File metadata
- Download URL: opendp_whitenoise_core-0.1.3-py2.py3-none-any.whl
- Upload date:
- Size: 8.2 MB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbb000638ba0d719a23093239e126c238455e25f0edc8bc077bfe633caa6204d |
|
MD5 | d054dc2db2cd6b0a7518ee7a90be7e4b |
|
BLAKE2b-256 | 9813f7fcd8b9247c7dae75312723aa2bd3ed793de517ad0e997e40015b0779a1 |