{"adoption": {"forks": 181, "observed_at": "2026-08-28T04:05:30.014032+00:00", "stars": 1738}, "canonical_url": "https://ross.abutalabs.com/products/hc", "card": {"archived": false, "artifact_type": "framework", "description": "hc is a lightweight framework to develop HomeKit accessories in Go.", "domain": ["iot", "developer-tools"], "enriched": true, "function": ["sdk", "networking", "security"], "health_score": 20, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["brutella/hc"], "name": "brutella/hc", "platform": ["go"], "pushed_at": "2023-07-18T09:59:09+00:00", "repo": "brutella/hc", "stars": 1738, "tags": ["homekit", "hap", "smart-home", "go-framework", "deprecated", "linux", "macos"], "topics": ["homekit", "go", "hap"], "urls": [], "use_cases": ["build a HomeKit-compatible smart light in Go", "expose a custom sensor to Apple's Home app", "implement a HomeKit switch accessory", "bridge existing hardware like LiFX or KNX to HomeKit", "develop a HomeKit camera accessory"], "what_it_is": "hc is a lightweight Go framework that implements Apple's HomeKit Accessory Protocol (HAP), letting developers build HomeKit accessories without handling the protocol details. It supports all HomeKit services and characteristics and announces itself via DNS-SD.", "when_to_avoid": ["starting a new project - use the successor brutella/hap library instead", "you need actively maintained code with recent bug fixes", "you target platforms other than linux or macOS"], "when_to_choose": ["you need a full Go implementation of the HomeKit Accessory Protocol", "you want to make custom hardware controllable from iOS Home app", "you're maintaining an existing project already built on hc"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hc", "repo": "brutella/hc", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "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:05:30.014032+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.014032+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:30:36.161793+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34afb3b7b1c430d1ca040ddc8609e95508b9c61795b74eabd1c08655f2b537f6", "fetched_at": "2026-08-28T04:05:30.014032+00:00", "kind": "readme", "missing": false, "url": "https://github.com/brutella/hc"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4207, "days_push": 1142, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}