{"adoption": {"forks": 29, "observed_at": "2026-08-28T04:04:31.879802+00:00", "stars": 1370}, "canonical_url": "https://ross.abutalabs.com/products/construct-js", "card": {"archived": false, "artifact_type": "library", "description": "🛠️A library for creating byte level data structures.", "domain": ["developer-tools", "files", "web-development"], "enriched": true, "function": ["serialization", "developer-tools"], "health_score": 20, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["francisrstokes/construct-js"], "name": "francisrstokes/construct-js", "platform": ["browser", "cross-platform"], "pushed_at": "2023-03-05T09:09:25+00:00", "repo": "francisrstokes/construct-js", "stars": 1370, "tags": ["binary-data", "byte-level", "structs", "endianness", "uint8array", "bitfields", "nodejs", "typescript"], "topics": ["binary", "byte", "structure", "construct"], "urls": [], "use_cases": ["assemble binary file formats in javascript", "build binary protocols without manual ArrayBuffer offset math", "create structs with specific endianness and alignment", "generate binary data for embedded or hardware interfaces from node", "serialize fixed-layout binary headers", "construct packed binary payloads in the browser"], "what_it_is": "construct-js is a TypeScript library for declaratively building byte-level data structures with typed fields, nested structs, pointers, sizeof fields, and per-field endianness. It outputs standard Uint8Array values and works in both the browser and Node.js.", "when_to_avoid": ["you need to parse or decode arbitrary existing binary formats rather than construct them", "you want schema-based serialization like protobuf with cross-language support", "you need streaming or incremental serialization of large data"], "when_to_choose": ["you need to hand-assemble or define binary layouts in JS/TS", "you want pointers, sizeof, alignment, and endianness control in a small dependency", "you need output as a standard Uint8Array for browser or node use"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/construct-js", "repo": "francisrstokes/construct-js", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-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:04:31.879802+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.879802+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:55.202028+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "372ca9278a1fc2a5bb569270e1a0e1e3b2f53f3269d0c99b9f2037b021620138", "fetched_at": "2026-08-28T04:04:31.879802+00:00", "kind": "readme", "missing": false, "url": "https://github.com/francisrstokes/construct-js"}], "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": 2728, "days_push": 1277, "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}}