Skip to content

A light-weight imperative language for developing provably privacy-preserving algorithms

License

Notifications You must be signed in to change notification settings

yuxincs/lightdp

Repository files navigation

LightDP

build codecov

A Light-Weight imperative language for developing provably privacy-preserving algorithms. More details can be found in the paper.

This project presents a tool for transforming LightDP programs into Python programs along with differential-privacy proofs, it is built to learn the ideas of LightDP and very primitive.

Install

Virtual environment is highly recommended (or if you prefer virtualenv or conda, the setup is similar):

python -m venv venv
source venv/bin/acitvate
# now we're in virtual environment
pip install .

Usage

usage: lightdp [-h] [-o OUT] [-c CONSTRAINTS] FILE

positional arguments:
  FILE

optional arguments:
  -h, --help            show this help message and exit
  -o OUT, --out OUT     The output file name.
  -c CONSTRAINTS, --constraints CONSTRAINTS
                        Output all constraints to file.

For example, run lightdp ./examples/sparsevector.py for verifying Sparse Vector, LightDP will output:

2019-04-23 10:58:35 INFO Type check succeeds, now transforming the algorithm...
2019-04-23 10:58:35 INFO Transformation finished at ./sparse_vector_t.py. See ./sparse_vector_constraints.txt for constraints generated.

We also put some annotated programs in examples/ for references. The default name for transformed file and constraint file is *_t.py and *_constraints.txt.

License

MIT.

About

A light-weight imperative language for developing provably privacy-preserving algorithms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages