{"repo":"cwida/privacy","free":true,"listed":false,"github":"https://github.com/cwida/privacy","clone":"git clone https://github.com/cwida/privacy.git","description":"Automatic query privatization in DuckDB","language":"C++","stars":19,"topics":["database","privacy-enhancing-technologies","privacy-preserving","privacy-protection","privacy-tools","query-engine"],"license":"AGPL-3.0","category":"databases-storage","readme_excerpt":"Privacy — Automatic Query Privatization for DuckDB privacy is a DuckDB extension that automatically privatizes SQL aggregate queries. It supports two privacy mechanisms: - PAC mode (default): Empirical membership-inference-attack (MIA) resistance via the PAC Privacy framework. Adds calibrated noise derived from the query's own variance over parallel sub-samples. Tight theoretical MI bounds; no per-query sensitivity analysis needed. - DP-elastic mode : Formal (ε,δ)-differential privacy via elastic sensitivity. Computes a per-query sensitivity bound from the join structure (max frequency per table), then injects calibrated Laplace noise. Provides a provable ε-DP guarantee. Both modes share the same DDL and require no changes to query syntax — the extension rewrites aggregate query plans transparently. This works on DuckDB v1.5 and beyond. See https://duckdb.org/install to install. Or if you do not want to install anything: this extension is also distributed in WASM, so you can run the examples also in https://shell.duckdb.org in a browser. Install Declaring Privacy Structure Before running private queries, you declare the privacy structure using three DDL constructs: PRIVACY KEY (col) — Identifies which column is the privacy unit key. The privacy unit (PU) is the entity being protected: one PU = one customer, user, or individual. Composite keys are supported. PRIVACY LINK (local col) REFERENCES table(col) — Declares that a table's rows belong to a PU via a foreign key. Links pr","default_branch":null,"files":null,"tree":[],"storefront":"/r/cwida","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/cwida/privacy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}