{"adoption": {"forks": 198, "observed_at": "2026-08-28T04:06:27.511116+00:00", "stars": 2220}, "canonical_url": "https://ross.abutalabs.com/products/resolver", "card": {"archived": false, "artifact_type": "library", "description": "Swift Dependency Injection / Service Locator framework (Deprecated)", "domain": ["developer-tools", "mobile-development"], "enriched": true, "function": ["middleware"], "health_score": 80, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["hmlongco/Resolver"], "name": "hmlongco/Resolver", "platform": [], "pushed_at": "2026-06-30T20:05:09+00:00", "repo": "hmlongco/Resolver", "stars": 2220, "tags": ["dependency-injection", "service-locator", "swift", "property-wrappers", "deprecated", "inversion-of-control", "ios", "mobile"], "topics": [], "urls": [], "use_cases": ["dependency injection in swift ios apps", "service locator pattern in swift", "inject dependencies into viewcontrollers with property wrappers", "manage service scopes like cached or graph in swift", "resolve protocols to implementations at runtime", "pass arguments when resolving services in swift"], "what_it_is": "Resolver is an ultralight dependency injection / service locator framework for Swift on iOS, supporting multiple injection strategies and property wrappers. It is officially deprecated in favor of the author's successor library, Factory.", "when_to_avoid": ["starting a new Swift project - use Factory instead", "you need compile-time safe dependency injection", "the project is actively developed and needs long-term support"], "when_to_choose": ["maintaining an existing codebase already built on Resolver", "you need a tiny single-file DI framework for a legacy Swift project"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/resolver", "repo": "hmlongco/Resolver", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "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:27.511116+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.511116+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:50.444084+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b1b70461b90092d7c5bf1ba0b3d15ad1d75e0f129431a6f2e6ccc8bd4f41d0a2", "fetched_at": "2026-08-28T04:06:27.511116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hmlongco/Resolver"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "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": 3214, "days_push": 64, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}