{"adoption": {"forks": 269, "observed_at": "2026-08-28T04:07:29.327536+00:00", "stars": 2913}, "canonical_url": "https://ross.abutalabs.com/products/locksmith", "card": {"archived": false, "artifact_type": "library", "description": "A powerful, protocol-oriented library for working with the keychain in Swift.", "domain": ["security", "mobile-development", "developer-tools"], "enriched": true, "function": ["security", "cryptography", "sdk"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["matthewpalmer/Locksmith"], "name": "matthewpalmer/Locksmith", "platform": [], "pushed_at": "2024-03-22T20:08:39+00:00", "repo": "matthewpalmer/Locksmith", "stars": 2913, "tags": ["keychain", "swift", "protocol-oriented", "secure-storage", "cocoapods", "carthage", "ios", "macos", "mobile", "desktop"], "topics": [], "urls": [], "use_cases": ["store passwords securely in the iOS keychain", "save user credentials on macOS", "read and write keychain items in Swift", "add secure storage to my Swift types via protocols", "delete keychain entries in an iOS app", "manage keychain metadata with strongly typed results"], "what_it_is": "Locksmith is a protocol-oriented Swift library for interacting with the iOS, macOS, watchOS, and tvOS keychain. It provides a simple API for saving, loading, updating, and deleting secure data with strongly typed results.", "when_to_avoid": ["you need a cross-platform (non-Apple) secure storage solution", "your project targets Swift versions older than 4 without using the legacy branch", "the library appears to be in maintenance mode and you need actively developed features"], "when_to_choose": ["you need keychain access across iOS, macOS, watchOS, and tvOS", "you prefer a protocol-oriented, Swift-native API over raw Security framework calls", "you want typed access to keychain metadata"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/locksmith", "repo": "matthewpalmer/Locksmith", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "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:07:29.327536+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.327536+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:34:13.469664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4792fa0477c23739efc18d62baa27954284d62a08bb3f3ac402dbeaeaf15b374", "fetched_at": "2026-08-28T04:07:29.327536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matthewpalmer/Locksmith"}], "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": 4364, "days_push": 894, "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}}