{"adoption": {"forks": 348, "observed_at": "2026-08-28T04:06:11.725460+00:00", "stars": 2082}, "canonical_url": "https://ross.abutalabs.com/products/hdiffpatch", "card": {"archived": false, "artifact_type": "library", "description": "a C\\C++ library and command-line tools for Diff & Patch between binary files or directories(folder); cross-platform; runs fast; create small delta/differential; support large files and limit memory requires when diff & patch.", "domain": ["files", "developer-tools", "cross-platform"], "enriched": true, "function": ["compression", "cli", "developer-tools"], "health_score": 97, "homepage": null, "language": "C++", "license": "NOASSERTION", "license_family": "other", "maturity": "stable", "member_repos": ["sisong/HDiffPatch"], "name": "sisong/HDiffPatch", "platform": ["cross-platform", "cli", "windows", "embedded"], "pushed_at": "2026-07-31T05:56:50+00:00", "repo": "sisong/HDiffPatch", "stars": 2082, "tags": ["binary-diff", "delta-compression", "patching", "ota-updates", "bsdiff", "vcdiff", "directory-diff", "android", "linux", "macos"], "topics": ["diff", "patch", "bsdiff", "update", "delta", "xdelta", "patcher", "hdiffpatch", "differential", "binary", "directories", "dir", "folder", "android", "delta-compression", "vcdiff", "open-vcdiff"], "urls": [], "use_cases": ["create small delta patches between binary file versions", "apply patches to update files or directories", "generate OTA update packages for embedded devices", "diff and patch Android APKs or zip archives", "sync files when old versions are unavailable using hash certificates", "limit memory usage when diffing very large files"], "what_it_is": "HDiffPatch is a C/C++ library and command-line tools for creating and applying binary diffs (deltas) between files or directories. It produces small patch files quickly with bounded memory usage and is compatible with bsdiff and VCDIFF (xdelta3/open-vcdiff) formats.", "when_to_avoid": ["you only need text diffs for source code (use git diff)", "you need a pure managed-language solution without C/C++ integration", "you require app-store-compatible APK patching without re-signing (use sfpatcher instead)"], "when_to_choose": ["you need fast, memory-efficient binary or directory diffing", "you want small delta files for software updates or OTA distribution", "you need bsdiff or VCDIFF format compatibility", "you target embedded or low-RAM devices for patching"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hdiffpatch", "repo": "sisong/HDiffPatch", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "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:11.725460+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.725460+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:55:56.039101+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0f61261d198b30ad5475d0bcb992af4d3ff514254203d24861bfa5d16354152", "fetched_at": "2026-08-28T04:06:11.725460+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sisong/HDiffPatch"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5000, "days_push": 33, "days_rel": 33, "gap_med": 20, "n_releases_24m": 10}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}