{"adoption": {"forks": 45, "observed_at": "2026-08-28T04:04:22.668437+00:00", "stars": 1326}, "canonical_url": "https://ross.abutalabs.com/products/concurrencyrecipes", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Practical solutions to problems with Swift Concurrency", "domain": ["developer-tools", "tutorials", "apple-ecosystem"], "enriched": true, "function": ["concurrency", "developer-tools", "documentation"], "health_score": 79, "homepage": null, "language": "Swift", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["dimasusername/ConcurrencyRecipes"], "name": "dimasusername/ConcurrencyRecipes", "platform": ["cross-platform"], "pushed_at": "2026-08-22T21:28:39+00:00", "repo": "dimasusername/ConcurrencyRecipes", "stars": 1326, "tags": ["swift-concurrency", "async-await", "actors", "structured-concurrency", "recipes", "sendability", "swift", "macos", "ios"], "topics": [], "urls": [], "use_cases": ["learn how to create an async context in Swift", "understand actor isolation and reentrancy pitfalls", "integrate pre-concurrency libraries with async code", "solve sendability errors when crossing isolation domains", "use Swift concurrency correctly in SwiftUI", "avoid thread pool blocking and deadlocks in Swift tasks", "migrate code toward Swift 6 concurrency rules"], "what_it_is": "A curated collection of practical recipes and documented hazards for working with Swift Concurrency (async/await, actors, isolation, structured concurrency). It is a documentation-style learning resource originally by Matt Massicotte, now maintained by dimasusername.", "when_to_avoid": ["you need production-ready, Swift 6-updated code samples", "you want comprehensive or authoritative documentation rather than opinionated recipes", "you are not working in the Swift/Apple ecosystem"], "when_to_choose": ["you are writing or debugging Swift async/await code", "you need practical, example-driven explanations of actors and isolation", "you want a reference of common Swift Concurrency hazards and workarounds"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/concurrencyrecipes", "repo": "dimasusername/ConcurrencyRecipes", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "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:22.668437+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.668437+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:46:21.839050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f8991b1a7c75a211659bfed35ba65f1873dfd08ef24309b763b2be2188e04889", "fetched_at": "2026-08-28T04:04:22.668437+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dimasusername/ConcurrencyRecipes"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 71, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1003, "days_push": 11, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}