{"adoption": {"forks": 606, "observed_at": "2026-08-28T04:06:52.800812+00:00", "stars": 2448}, "canonical_url": "https://ross.abutalabs.com/products/tensorflow-federated", "card": {"archived": false, "artifact_type": "framework", "description": "An open-source framework for machine learning and other computations on decentralized data.", "domain": ["machine-learning", "artificial-intelligence", "privacy", "microservices"], "enriched": true, "function": ["machine-learning", "llm-training", "simulation", "sdk"], "health_score": 89, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google-parfait/tensorflow-federated"], "name": "google-parfait/tensorflow-federated", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-26T03:29:01+00:00", "repo": "google-parfait/tensorflow-federated", "stars": 2448, "tags": ["federated-learning", "tensorflow", "decentralized-data", "privacy-preserving", "simulation-runtime"], "topics": [], "urls": [], "use_cases": ["train a model across many clients without collecting their data", "simulate federated averaging experiments on a single machine", "apply federated training and evaluation to existing TensorFlow models", "prototype novel federated learning algorithms", "compute aggregated analytics over decentralized datasets", "train mobile keyboard prediction models without uploading sensitive user data"], "what_it_is": "TensorFlow Federated (TFF) is an open-source Python framework for machine learning and other computations on decentralized data. It provides high-level federated learning APIs built on TensorFlow plus a lower-level Federated Core for expressing novel federated algorithms, with a single-machine simulation runtime.", "when_to_avoid": ["you need production federated learning on real mobile devices rather than simulation", "your stack is PyTorch or another non-TensorFlow framework", "you need simple centralized training with no decentralization constraints", "you need lightweight analytics without learning a strongly-typed federated computation model"], "when_to_choose": ["you need privacy-preserving training where data stays on client devices", "you are researching or prototyping federated learning algorithms", "your models are already built in TensorFlow", "you want a simulation runtime for federated experiments without real device infrastructure"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tensorflow-federated", "repo": "google-parfait/tensorflow-federated", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "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:06:52.800812+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:52.800812+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:30:28.566387+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "07092f6931cd801bd3956ec32b17f724f6fcebc800df584423aa01bad2bc6212", "fetched_at": "2026-08-28T04:06:52.800812+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-parfait/tensorflow-federated"}, {"content_hash": "a79a3ec96586fbbfc02dec3e407eaba4ed7d9a24f40372323e5b9dae76abf9b2", "fetched_at": "2026-08-29T10:11:51.122242+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tensorflow-federated/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 40}, "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": 2821, "days_push": 7, "days_rel": 706, "gap_med": 8, "n_releases_24m": 2}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}