{"adoption": {"forks": 311, "observed_at": "2026-08-28T04:08:53.392349+00:00", "stars": 4556}, "canonical_url": "https://ross.abutalabs.com/products/duemunk-async", "card": {"archived": false, "artifact_type": "library", "description": "Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch", "domain": ["mobile-development", "apple-ecosystem", "developer-tools"], "enriched": true, "function": ["concurrency"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["duemunk/Async"], "name": "duemunk/Async", "platform": [], "pushed_at": "2024-04-11T07:44:27+00:00", "repo": "duemunk/Async", "stars": 4556, "tags": ["gcd", "grand-central-dispatch", "async", "syntactic-sugar", "chaining", "dispatch-queues", "asyncgroup", "qos", "cocoapods", "carthage", "swift-package-manager", "ios", "macos", "swift", "mobile", "desktop"], "topics": [], "urls": [], "use_cases": ["chain async blocks in swift without deep nesting", "simpler syntax for grand central dispatch", "run work on a background queue then update the ui on the main queue", "run several background tasks in parallel and wait for all to finish", "dispatch to custom queues with readable chained code", "swift wrapper around dispatchqueue async calls"], "what_it_is": "A Swift library providing fluent, chainable syntactic sugar over Grand Central Dispatch (GCD) asynchronous dispatches. It supports chaining blocks across quality-of-service queues (main, user-initiated, background, etc.) without nested indentation, plus AsyncGroup for running parallel blocks and waiting on completion.", "when_to_avoid": ["you are starting a new project - Swift's built-in async/await, Task, and task groups supersede this library", "you need an actively maintained dependency - the project is explicitly no longer maintained", "you need advanced concurrency features like cancellation, structured error handling, or actors"], "when_to_choose": ["you maintain an older Swift codebase (iOS 8+/Swift 5.1 era) that predates structured concurrency and want readable GCD chaining", "you prefer fluent chaining over nested DispatchQueue.global().async blocks", "you need simple fire-and-forget dispatch to QoS queues or a group of parallel blocks with a wait"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/duemunk-async", "repo": "duemunk/Async", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "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:53.392349+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.392349+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:02.150123+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "43314096a7e5f073967df862e5471338d5a068ee18243e13d2c2b84c181e8887", "fetched_at": "2026-08-28T04:08:53.392349+00:00", "kind": "readme", "missing": false, "url": "https://github.com/duemunk/Async"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4422, "days_push": 874, "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}}