{"adoption": {"forks": 319, "observed_at": "2026-08-28T04:08:30.003843+00:00", "stars": 3932}, "canonical_url": "https://ross.abutalabs.com/products/mmwormhole", "card": {"archived": false, "artifact_type": "library", "description": "Message passing between iOS apps and extensions.", "domain": ["mobile-development", "developer-tools"], "enriched": true, "function": ["message-queue", "middleware"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["griddynamics-archive/MMWormhole"], "name": "griddynamics-archive/MMWormhole", "platform": [], "pushed_at": "2024-02-02T20:45:32+00:00", "repo": "griddynamics-archive/MMWormhole", "stars": 3932, "tags": ["ipc", "app-extensions", "app-groups", "darwin-notifications", "cocoapods", "interprocess-communication", "ios-tools", "ios", "macos", "mobile", "objective-c"], "topics": [], "urls": [], "use_cases": ["pass data between an iOS app and its widget extension", "send commands from a Today extension to the containing app", "sync shared state between app and watch extension", "get realtime updates in an extension when the app changes data", "share small messages between processes on macOS"], "what_it_is": "MMWormhole is an Objective-C library that enables message passing between an iOS or OS X app and its extensions via files written to a shared App Group container. It supports near-realtime notifications using CFNotificationCenter Darwin notifications, simulating interprocess communication where none officially exists.", "when_to_avoid": ["you need true interprocess communication or large data transfers", "your containing app is not running in the background, since notifications may not fire", "you are building a new Swift-first project and prefer modern alternatives"], "when_to_choose": ["you need lightweight message passing between an iOS/OS X app and its extensions", "your app uses background modes so notifications can be delivered promptly", "you want a simple mailbox-style API with identifiers for message channels"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mmwormhole", "repo": "griddynamics-archive/MMWormhole", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "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:30.003843+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:30.003843+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:40.397354+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f81876e96d3c707987c2a35ed3ec9164da9f858203b3e42e88c389f395738bc1", "fetched_at": "2026-08-28T04:08:30.003843+00:00", "kind": "readme", "missing": false, "url": "https://github.com/griddynamics-archive/MMWormhole"}], "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": 4288, "days_push": 943, "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}}