{"adoption": {"forks": 430, "observed_at": "2026-08-28T04:07:57.641309+00:00", "stars": 3346}, "canonical_url": "https://ross.abutalabs.com/products/differential-privacy", "card": {"archived": false, "artifact_type": "library", "description": "Google's differential privacy libraries.", "domain": ["privacy", "data-science", "analytics", "security", "developer-tools"], "enriched": true, "function": ["privacy", "security", "data-science", "testing", "cli"], "health_score": 97, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google/differential-privacy"], "name": "google/differential-privacy", "platform": ["go", "cpp", "jvm", "python", "cross-platform"], "pushed_at": "2026-08-24T21:03:12+00:00", "repo": "google/differential-privacy", "stars": 3346, "tags": ["differential-privacy", "anonymization", "apache-beam", "apache-spark", "privacy-budget-accounting", "sql", "statistics"], "topics": ["privacy", "differential-privacy", "anonymization"], "urls": [], "use_cases": ["compute differentially private statistics over a dataset", "add calibrated noise to aggregations to protect user privacy", "track and account for privacy budget (epsilon) in a data pipeline", "run differentially private SQL queries", "audit whether a system's differential privacy guarantees hold", "build anonymized analytics on Apache Beam or Spark pipelines"], "what_it_is": "Google's collection of differential privacy libraries for computing ε- and (ε, δ)-differentially private statistics over datasets. It includes end-to-end frameworks (Privacy on Beam for Go, PipelineDP4j for JVM), low-level noise/aggregation building blocks in C++, Go, and Java, a privacy budget accounting library, a DP auditing tool, and a CLI for differentially private SQL queries.", "when_to_avoid": ["you need simple anonymization or pseudonymization rather than formal DP guarantees", "you need DP support in a language not covered (e.g., Ruby, PHP)", "you rely on the experimental tools (SQL CLI, auditor) needing API stability", "your team has no familiarity with differential privacy concepts and cannot invest in learning them"], "when_to_choose": ["you need production-grade differential privacy in Go, Java/Kotlin/Scala, C++, or Python", "you want an easy end-to-end DP framework on top of Beam or Spark", "you need low-level DP primitives like noise addition and private aggregations", "you must track privacy budget or audit DP guarantees"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/differential-privacy", "repo": "google/differential-privacy", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:57.641309+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:41:00.855059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b6019cccfc1d281f4d9e0f4b860ccc90de920f92524c57e4445c33c9731ecbc", "fetched_at": "2026-08-28T04:07:57.641309+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/differential-privacy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 37}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2555, "days_push": 9, "days_rel": 208, "gap_med": 274, "n_releases_24m": 2}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}