{"adoption": {"forks": 482, "observed_at": "2026-08-28T04:06:42.660643+00:00", "stars": 2386}, "canonical_url": "https://ross.abutalabs.com/products/libphonenumber-ios", "card": {"archived": false, "artifact_type": "library", "description": "iOS port of Google's libphonenumber with Objective-C core, Swift facade, SwiftUI input, and CocoaPods/SPM support", "domain": ["mobile-development", "developer-tools"], "enriched": true, "function": ["parser", "sdk", "internationalization"], "health_score": 99, "homepage": "https://github.com/iziz/libPhoneNumber-iOS/releases/latestc", "language": "Objective-C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["iziz/libPhoneNumber-iOS"], "name": "iziz/libPhoneNumber-iOS", "platform": ["cross-platform"], "pushed_at": "2026-08-15T10:49:44+00:00", "repo": "iziz/libPhoneNumber-iOS", "stars": 2386, "tags": ["phone-number-validation", "phone-number-formatting", "libphonenumber", "objective-c", "swiftui", "cocoapods", "swift-package-manager", "geocoding", "short-numbers", "localization", "ios", "swift", "mobile"], "topics": ["libphonenumber", "cocoapods", "objective-c", "ios", "metadata", "phone-number", "phone-number-formatting", "phone-number-validation", "spm", "swift", "swift-package-manager", "swiftui"], "urls": [], "use_cases": ["validate phone numbers in an iOS app", "format phone numbers as the user types in Swift", "parse international phone numbers in Objective-C", "show country-specific phone number input field in SwiftUI", "look up carrier or time zone for a phone number", "detect emergency or short-code numbers", "get geographic info for a phone number offline"], "what_it_is": "An iOS port of Google's libphonenumber library with an Objective-C core and Swift-first facade modules for parsing, formatting, and validating phone numbers. It includes optional modules for geocoding, short/emergency numbers, carrier lookup, time zones, and a SwiftUI phone input field.", "when_to_avoid": ["building for Android or non-Apple platforms (use the original libphonenumber)", "you need server-side phone number processing outside Swift/Objective-C", "you only need simple formatting and don't want extra metadata weight"], "when_to_choose": ["building iOS or Apple-platform apps that need robust international phone number handling", "you want Google libphonenumber metadata parity on iOS", "you need both Objective-C compatibility and modern Swift/SwiftUI APIs", "you prefer SPM or CocoaPods integration with modular imports"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/libphonenumber-ios", "repo": "iziz/libPhoneNumber-iOS", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "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:42.660643+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.660643+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.361982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe16d6e99d272e24b01e1429b62983ee2643f8e40ef240231bda9c1f24281636", "fetched_at": "2026-08-28T04:06:42.660643+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iziz/libPhoneNumber-iOS"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 96}, "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": 4571, "days_push": 18, "days_rel": 29, "gap_med": 13.5, "n_releases_24m": 11}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}