-
Notifications
You must be signed in to change notification settings - Fork 366
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
READMEs and examples for PipelineDP4j, add it to GitHub Actions and fix Maven artifact generation. Change-Id: Ibe52784c64bb6be18d503e15ae03efbdbf0ae327 GitOrigin-RevId: 63505a954f03a1cf7f276aecc4c7b7ab2f9c434f
- Loading branch information
Showing
7 changed files
with
212 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,48 @@ | ||
<!-- TODO: revise all pipelinedp4j related readmes (this one, | ||
google internal and root differential privacy package readme). --> | ||
|
||
# PipelineDP4j | ||
|
||
PipelineDP4j is an end-to-end differential privacy solution for JVM that supports various frameworks for distributed data processing such as [Apache Spark](https://spark.apache.org/) and | ||
[Apache Beam](https://beam.apache.org/documentation/). | ||
It is intended to be usable by all developers, regardless of their differential | ||
privacy expertise. | ||
PipelineDP4j is an end-to-end differential privacy solution for JVM that | ||
supports various frameworks for distributed data processing such as | ||
[Apache Beam](https://beam.apache.org/documentation/) and | ||
[Apache Spark](https://spark.apache.org/) (coming soon). It is intended to be | ||
usable by all developers, regardless of their differential privacy expertise. | ||
|
||
Internally, PipelineDP4j relies on the lower-level building blocks from the | ||
differential privacy library and combines them into an "out-of-the-box" solution | ||
that takes care of all the steps that are essential to differential privacy, | ||
including noise addition, [partition selection](https://arxiv.org/abs/2006.03684), | ||
and contribution bounding. Thus, rather than using the lower-level differential | ||
privacy library, it is recommended to use PipelineDP4j, as it can reduce | ||
implementation mistakes. | ||
including noise addition, | ||
[partition selection](https://arxiv.org/abs/2006.03684), and contribution | ||
bounding. Thus, rather than using the lower-level differential privacy library, | ||
it is recommended to use PipelineDP4j, as it can reduce implementation mistakes. | ||
|
||
PipelineDP4j can be used on any JVM using any JVM compatible language like Kotlin, Scala or Java. | ||
You can use PipelineDP4j in Java, Kotlin or Scala. | ||
|
||
## How to Use | ||
|
||
<!-- TODO: create codelab and check links. --> | ||
Our [codelab](https://codelabs.developers.google.com/codelabs/pipelinedp4j/) | ||
about computing private statistics with PipelineDP4j | ||
demonstrates how to use the library. Source code for the codelab is available in | ||
the [codelab/](codelab) | ||
directory. | ||
WARNING: Current API version (0.0.1) is experimental and will be changed in 2024 | ||
without backward-compatibility. The experimental API won't be supported and | ||
maintained after that. | ||
|
||
### Example | ||
|
||
<!-- TODO: create codelab and rewrite this section. --> | ||
<!-- TODO: generate kDoc of API using Dokka and GitHub pages. --> | ||
|
||
Familiarize yourself with an | ||
[example](https://github.com/google/differential-privacy/tree/main/examples/pipelinedp4j). | ||
It shows how to compute differentially private statistics on a real dataset | ||
using the library. | ||
|
||
The public API of the library is located in the | ||
[API package](https://github.com/google/differential-privacy/tree/main/pipelinedp4j/main/com/google/privacy/differentialprivacy/pipelinedp4j/api). | ||
You can look at it if you need something beyond the example. | ||
|
||
### Use the library from Maven repository | ||
|
||
<!-- TODO: insert link. --> | ||
Full documentation of the API is available as [kdoc](). | ||
The easiest way to start using the library in your project is to use the | ||
dependency from Maven repository. You can find it | ||
[here](https://mvnrepository.com/artifact/com.google.privacy.differentialprivacy/pipelinedp4j). | ||
After adding this dependency into your project you can write the same code as in | ||
the example above and it will compile. | ||
|
||
## Using with Bazel | ||
<!-- TODO: describe how to build. --> | ||
Please, don't use `0.0.1` version in production code as it is experimental and | ||
its maintenance will be stopped in 2024 with release of the new version. |