{"adoption": {"forks": 206, "observed_at": "2026-08-28T04:06:03.268473+00:00", "stars": 1993}, "canonical_url": "https://ross.abutalabs.com/products/ishkawa-apikit", "card": {"archived": false, "artifact_type": "library", "description": "Type-safe networking abstraction layer that associates request type with response type.", "domain": ["web-development", "developer-tools", "apis"], "enriched": true, "function": ["http-client", "middleware", "serialization"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["ishkawa/APIKit"], "name": "ishkawa/APIKit", "platform": ["cross-platform"], "pushed_at": "2024-06-30T04:14:07+00:00", "repo": "ishkawa/APIKit", "stars": 1993, "tags": ["type-safe-networking", "swift", "networking-abstraction", "request-response", "cocoapods", "carthage", "spm", "ios", "macos"], "topics": [], "urls": [], "use_cases": ["make type-safe HTTP requests in Swift", "associate request types with response types in iOS apps", "build a networking layer for a REST API in Swift", "avoid manual JSON response casting in Swift networking", "abstract URLSession behind a protocol-oriented API", "share networking code across iOS, macOS, watchOS, and tvOS"], "what_it_is": "APIKit is a Swift library providing a type-safe networking abstraction layer that associates each request type with its response type. It lets developers define Request protocols and send them via Session, with responses inferred at compile time.", "when_to_avoid": ["your project uses async/await-first modern networking stacks like URLSession's native async APIs or Alamofire with concurrency", "you need a cross-platform solution beyond Apple platforms", "the project appears to be in maintenance mode with limited ongoing development"], "when_to_choose": ["you are building an iOS, macOS, watchOS, or tvOS app in Swift and want compile-time-safe API calls", "you prefer defining request/response types declaratively instead of ad-hoc URLSession calls", "you want a lightweight networking layer without heavy dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ishkawa-apikit", "repo": "ishkawa/APIKit", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "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:03.268473+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:03.268473+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:02:35.229492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "585a5c9be0e2746be173c02ef19c7261b7f34d6d7bee73b72b4b5328bfdf96a7", "fetched_at": "2026-08-28T04:06:03.268473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ishkawa/APIKit"}], "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": 4214, "days_push": 794, "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}}