|
1 | 1 | # Private Data Service Library |
2 | 2 |
|
3 | | -`pdslib` is a Rust library that implements on-device differential privacy (DP) budgeting for privacy-preserving attribution measurement APIs such as the W3C's [PPA](https://w3c.github.io/ppa/), [Cookie Monster](https://arxiv.org/abs/2405.16719) or [Big Bird](https://arxiv.org/abs/2506.05290). It aims to remain more generic than Web advertising use cases, exposing a relatively abstract interface for: (1) storing events, such as impressions for PPA but also other personal-data-events like locations the user has visited previously, and (2) requesting reports computed based on previously stored events, such as conversion attribution reports for PPA or also whether the user visited a particular location previously. |
| 3 | +`pdslib` is a Rust library that implements on-device differential privacy (DP) budgeting for privacy-preserving attribution measurement APIs such as the W3C's [PPA](https://w3c.github.io/ppa/), [Cookie Monster](https://arxiv.org/abs/2405.16719) or [Big Bird](https://arxiv.org/abs/2506.05290). It aims to remain more generic than Web advertising use cases, exposing a relatively abstract interface for: |
| 4 | +1. storing events, such as impressions for PPA but also other personal-data-events like locations the user has visited previously, and |
| 5 | +2. requesting reports computed based on previously stored events, such as conversion attribution reports for PPA or also whether the user visited a particular location previously. |
4 | 6 |
|
5 | 7 | ## State and versions |
6 | 8 |
|
7 | 9 | The library is currently under active development and is highly experimental. The most experimental APIs and algorithms, as well as some debugging APIs, are behind an `experimental` feature flag. |
8 | 10 | This repository contains the following releases: |
9 | 11 |
|
10 | | -- The upcoming [v0.3 - Big Bird](https://github.com/columbia/pdslib/releases) release implements the [Big Bird algorithm](https://arxiv.org/abs/2506.05290). |
| 12 | +- The [v0.3 - Big Bird](https://github.com/columbia/pdslib/releases/tag/v0.3) release implements the [Big Bird algorithm](https://arxiv.org/abs/2506.05290). |
11 | 13 | - Big Bird is an extension to PPA and Cookie Monster that supports and manages privacy budgets for different sites while maintaining global privacy guarantees against colluding sites. Big Bird preserves both user privacy and isolation among queriers competing for privacy budget on user devices. |
12 | 14 | - This release builds on [Cookie Monster algorithm](https://arxiv.org/abs/2405.16719) for individual privacy loss accounting (Section 3.3 of the linked paper), whose main logic is implemented in [src/pds/accounting.rs](https://github.com/columbia/pdslib/blob/e54c363fcdf3761df63dfb4cb025c5fe92cc571f/src/pds/accounting.rs). |
13 | 15 | - The Big Bird privacy management layer is mainly implemented in [src/pds/core.rs](https://github.com/columbia/pdslib/blob/e54c363fcdf3761df63dfb4cb025c5fe92cc571f/src/pds/core.rs), with external entrypoints at [src/pds/private_data_service.rs](https://github.com/columbia/pdslib/blob/e54c363fcdf3761df63dfb4cb025c5fe92cc571f/src/pds/private_data_service.rs) and [src/pds/batch_pds.rs](https://github.com/columbia/pdslib/blob/e54c363fcdf3761df63dfb4cb025c5fe92cc571f/src/pds/batch_pds.rs). |
14 | | -- The [v0.2 - Cookie Monster](https://github.com/columbia/pdslib/tree/19eee219404e90b8529138137e3f8430f06a78ee) release is an older release that implements Cookie Monster only. |
| 16 | +- The [v0.2 - Cookie Monster](https://github.com/columbia/pdslib/releases/tag/v0.2) release is an older release that implements Cookie Monster only. |
15 | 17 | - The purpose of this release is to help with understanding of the Cookie Monster algorithm, however please note that because the repository is still very much under development and experimental, we urge that you do not rely on it for implementations of PPA. File [src/pds/epoch_pds.rs](https://github.com/columbia/pdslib/blob/19eee219404e90b8529138137e3f8430f06a78ee/src/pds/epoch_pds.rs) implements the Cookie Monster algorithm. |
16 | 18 | - A test case that shows how to use the library in the context of PPA Level 1 is in [tests/ppa_workflow.rs](https://github.com/columbia/pdslib/blob/19eee219404e90b8529138137e3f8430f06a78ee/tests/ppa_workflow.rs). |
17 | 19 | - This version of pdslib implements privacy loss accounting against a single privacy filter (a.k.a., `budget`), for example for a single advertiser. To support multiple privacy filters (such as one per advertiser, as dictated by the Cookie Monster paper and in PPA Level 1), one would instantiate multiple pdslibs. No support is provided in this version for management of these different pdslib instances. |
|
0 commit comments