{"adoption": {"forks": 605, "observed_at": "2026-08-28T04:08:57.629857+00:00", "stars": 4728}, "canonical_url": "https://ross.abutalabs.com/products/resumablejs", "card": {"archived": false, "artifact_type": "library", "description": "A JavaScript library for providing multiple simultaneous, stable, fault-tolerant and resumable/restartable uploads via the HTML5 File API.", "domain": ["web-development", "frontend", "files"], "enriched": true, "function": ["file-upload", "http-client"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["23/resumable.js"], "name": "23/resumable.js", "platform": ["browser"], "pushed_at": "2024-02-05T11:30:03+00:00", "repo": "23/resumable.js", "stars": 4728, "tags": ["resumable-uploads", "chunked-upload", "html5-file-api", "large-file-upload", "fault-tolerance", "javascript"], "topics": [], "urls": [], "use_cases": ["upload large files reliably from the browser", "resume uploads after a network connection drops", "pause and resume file uploads without losing progress", "upload files in parallel chunks to speed up transfers", "add drag-and-drop resumable uploading to a web app", "recover interrupted uploads without restarting from scratch"], "what_it_is": "Resumable.js is a JavaScript library that provides multiple simultaneous, stable, fault-tolerant and resumable file uploads via the HTML5 File API. It splits large files into chunks, retries failed chunks, and lets users pause, resume, and recover uploads after network interruptions.", "when_to_avoid": ["your target browsers lack HTML5 File API support (very old browsers)", "you only upload small files where chunking adds unnecessary complexity", "you cannot implement the server-side chunk reassembly endpoint", "you need an all-in-one uploader UI widget rather than a library"], "when_to_choose": ["you need fault-tolerant uploads of large files over HTTP", "users have unstable connections and uploads must resume automatically", "you want a dependency-free browser-side uploader using the HTML5 File API", "you need pause/resume/recover semantics for uploads"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/resumablejs", "repo": "23/resumable.js", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "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:08:57.629857+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:57.629857+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:19:02.634358+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb474e360b48395cc2b2d36f431976f4361e0119fe0e567f9eee635c665a81c5", "fetched_at": "2026-08-28T04:08:57.629857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/23/resumable.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 5538, "days_push": 940, "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}}