{"adoption": {"forks": 257, "observed_at": "2026-08-28T04:06:40.710671+00:00", "stars": 2357}, "canonical_url": "https://ross.abutalabs.com/products/easyxdm", "card": {"archived": true, "artifact_type": "library", "description": "A javascript library providing cross-browser, cross-site messaging/method invocation.", "domain": ["web-development", "frontend", "apis", "browser-extensions"], "enriched": true, "function": ["websocket", "rpc", "middleware"], "health_score": 10, "homepage": "http://easyxdm.net", "language": "XSLT", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["oyvindkinsey/easyXDM"], "name": "oyvindkinsey/easyXDM", "platform": ["browser", "cross-platform"], "pushed_at": "2023-04-20T16:46:55+00:00", "repo": "oyvindkinsey/easyXDM", "stars": 2357, "tags": ["cross-domain-messaging", "same-origin-policy", "postmessage", "iframe", "javascript"], "topics": [], "urls": [], "use_cases": ["communicate between an iframe and parent page on different domains", "expose a JavaScript API across domain boundaries", "send string messages between windows cross-origin", "implement RPC calls between a consumer page and a provider iframe", "support legacy browsers lacking postMessage with Flash or hash transports"], "what_it_is": "easyXDM is a JavaScript library enabling cross-domain messaging and RPC between windows, working around the Same Origin Policy via postMessage and fallback transports. It is no longer actively maintained because modern browsers natively support the underlying APIs.", "when_to_avoid": ["starting a new project - use native window.postMessage instead", "you need actively maintained software with security updates", "modern browsers are your only target"], "when_to_choose": ["you must support very old browsers (IE8, legacy Firefox) that lack native postMessage", "you maintain a legacy codebase already built on easyXDM"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/easyxdm", "repo": "oyvindkinsey/easyXDM", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "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:40.710671+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.710671+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:36:17.094628+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdee14c27a333d743db72d160755c163c3c1f5adfece62fed66b08c3b533113a", "fetched_at": "2026-08-28T04:06:40.710671+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oyvindkinsey/easyXDM"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 6242, "days_push": 1231, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}