{"adoption": {"forks": 459, "observed_at": "2026-08-28T04:07:04.041700+00:00", "stars": 2606}, "canonical_url": "https://ross.abutalabs.com/products/js-spark-md5", "card": {"archived": false, "artifact_type": "library", "description": "Lightning fast normal and incremental md5 for javascript", "domain": ["developer-tools", "web-development", "files"], "enriched": true, "function": ["cryptography", "serialization"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "WTFPL", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["satazor/js-spark-md5"], "name": "satazor/js-spark-md5", "platform": ["browser"], "pushed_at": "2023-11-14T03:33:40+00:00", "repo": "satazor/js-spark-md5", "stars": 2606, "tags": ["md5", "hashing", "incremental-hashing", "file-hashing", "utf8", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["compute md5 hash of a string in the browser", "hash large files in chunks without loading them fully into memory", "incrementally build an md5 hash from streamed data", "hash ArrayBuffer or typed array data", "compute file checksums client-side before upload"], "what_it_is": "SparkMD5 is a fast JavaScript implementation of the MD5 hash algorithm, supporting both one-shot and incremental hashing. It works in browsers and Node.js, supports ArrayBuffer/typed arrays, and enables low-memory hashing of large files by appending chunks.", "when_to_avoid": ["you need a cryptographically secure hash (md5 is broken for security purposes)", "you are in Node.js only and the built-in crypto module suffices", "you need modern algorithms like SHA-256"], "when_to_choose": ["you need fast md5 hashing in the browser", "you need incremental/chunked hashing of large files with low memory usage", "you need a library usable in both Node.js and browsers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/js-spark-md5", "repo": "satazor/js-spark-md5", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "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:04.041700+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:04.041700+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:21:00.897686+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "62645bad0ce8e30189c73ccf5c98eb6a08869271b2027aa0ddeb863ece7beff3", "fetched_at": "2026-08-28T04:07:04.041700+00:00", "kind": "readme", "missing": false, "url": "https://github.com/satazor/js-spark-md5"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5343, "days_push": 1023, "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}}