{"adoption": {"forks": 185, "observed_at": "2026-08-28T04:05:24.228628+00:00", "stars": 1700}, "canonical_url": "https://ross.abutalabs.com/products/go-selfupdate", "card": {"archived": false, "artifact_type": "library", "description": "Enable your Go applications to self update", "domain": ["developer-tools", "cross-platform"], "enriched": true, "function": ["developer-tools", "deployment", "cli"], "health_score": 20, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["sanbornm/go-selfupdate"], "name": "sanbornm/go-selfupdate", "platform": ["windows", "go", "cli"], "pushed_at": "2024-08-17T15:01:54+00:00", "repo": "sanbornm/go-selfupdate", "stars": 1700, "tags": ["self-update", "binary-diffs", "bsdiff", "go-applications", "update-server", "command-line", "linux", "macos"], "topics": ["go", "selfupdate"], "urls": [], "use_cases": ["enable my Go CLI to update itself automatically", "ship incremental binary patches to desktop Go apps", "serve app updates from S3 or static hosting", "check for new app version on startup", "distribute cross-platform Go binary updates", "fall back to full binary download when diff fails"], "what_it_is": "A Go library and CLI utility that enables Go applications to self-update by checking an HTTP(S) endpoint for a JSON update manifest and applying binary diffs or full binaries. It supports Mac, Linux, ARM, and Windows and uses bsdiff for small incremental updates.", "when_to_avoid": ["you need signed update verification or advanced update channels", "your application is not written in Go", "you need a managed update service with analytics and rollback"], "when_to_choose": ["you distribute a Go binary and want Chrome-style self-updates", "you want small incremental updates via bsdiff with SHA-verified fallback", "you want to host updates on static hosting or S3 without a backend"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-selfupdate", "repo": "sanbornm/go-selfupdate", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "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:24.228628+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.228628+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:46.633376+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "abf60169822b5604fec5780a153a413be634139698eb8b86de0ccb2bf0233eb6", "fetched_at": "2026-08-28T04:05:24.228628+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sanbornm/go-selfupdate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4676, "days_push": 746, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}