The OpenDP Library is a modular collection of statistical algorithms that adhere to the definition of differential privacy. It can be used to build applications of privacy-preserving computations, using a number of different models of privacy. OpenDP is implemented in Rust, with bindings for easy use from Python.
The architecture of the OpenDP Library is based on a conceptual framework for expressing privacy-aware computations. This framework is described in the paper A Programming Framework for OpenDP.
The OpenDP Library is part of the larger OpenDP Project, a community effort to build trustworthy, open source software tools for analysis of private data. (For simplicity in these docs, when we refer to “OpenDP,” we mean just the library, not the entire project.)
The full documentation for OpenDP is located at https://docs.opendp.org. Here are some helpful entry points:
The OpenDP Commons is a community-driven layer of OpenDP based on a common differential privacy library. It consists of tools and packages for building end-to-end differentially private systems. The governance for this layer facilitates contributions and vetting by the community, as well as reviews, guidance, and guarantees for using the library and tools.
Please contact us if you are looking into building tools with OpenDP.
The diagram below illustrates how the OpenDP library is the foundation of the OpenDP Commons and how various tools are built on top.
DP Creator is an open-source web-based application that demonstrates how the OpenDP library can be seamlessly integrated with widely-implemented large-scale research data repositories, like Dataverse, via a user-friendly interface that allows data owners and analysts to produce DP statistics without writing any code.
The first release will have step-by-step instructions to guide new users in learning the basics of tuning parameters to generate useful DP statistics. An overview on DP Creator was given at our community meeting last September (video here). DP Creator is currently under development and the source code can be found at https://github.com/opendp/dpcreator
We are preparing to release an initial version. If you are interested in testing the application and giving us feedback, please email us at firstname.lastname@example.org
The SmartNoise System
SmartNoise is jointly developed by Microsoft and Harvard's Institute for Quantitative Social Science (IQSS) and the School of Engineering and Applied Sciences (SEAS) as part of the Open Differential Privacy (OpenDP) initiative. The project aims to connect solutions from the research community with the lessons learned from real-world deployments to make Differential Privacy broadly accessible.
Building upon the foundation of the OpenDP library, the SmartNoise SDK includes two Python packages:
smartnoise-sql - Allows data owners to run differentially private SQL queries. For use, when generating reports or data cubes over tabular data stored in SQL databases or Spark, or when the data are very large.
smartnoise-synth - Provides utilities for generating differentially private synthetic datasets. Useful when you can’t predict the workload in advance, and want to be able to share “looks like” data with collaborators.
Both of these packages focus on the "global model" of Differential Privacy, as opposed to the "local model." In the global Differential Privacy model, a trusted data collector is presumed to have access to unprotected data and wishes to protect public releases of information.