{"adoption": {"forks": 359, "observed_at": "2026-08-28T04:06:50.571106+00:00", "stars": 2421}, "canonical_url": "https://ross.abutalabs.com/products/node-geoip", "card": {"archived": false, "artifact_type": "library", "description": "Native NodeJS implementation of MaxMind's GeoIP API -- works in node 0.6.3 and above, ask me about other versions", "domain": ["web-development", "backend", "analytics"], "enriched": true, "function": ["geospatial", "sdk", "developer-tools"], "health_score": 92, "homepage": "https://npmjs.org/package/geoip-lite", "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["geoip-lite/node-geoip"], "name": "geoip-lite/node-geoip", "platform": [], "pushed_at": "2026-06-17T17:12:38+00:00", "repo": "geoip-lite/node-geoip", "stars": 2421, "tags": ["geoip", "ip-geolocation", "maxmind", "geolite2", "synchronous-lookup", "maps", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["look up the country and city of an IP address in node", "geolocate visitor IPs in an express server", "get latitude and longitude from an IP without calling an external API", "fast synchronous IP to geo mapping for nodejs", "resolve IP address timezone and region locally"], "what_it_is": "A fully native JavaScript Node.js library implementing MaxMind's GeoIP API using GeoLite data files. It performs fast, synchronous IP-to-location lookups returning country, region, city, timezone, and coordinates for both IPv4 and IPv6 addresses.", "when_to_avoid": ["you need full IPv6 city/region/postal data, which GeoLite does not provide", "you run on memory-constrained instances, since all data is loaded into RAM", "you need the most feature-complete MaxMind API, where libgeoip bindings are better"], "when_to_choose": ["you need extremely fast, in-process IP geolocation lookups in Node.js", "you want a pure JavaScript solution without native C library bindings", "you need synchronous lookups with no network calls at request time"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-geoip", "repo": "geoip-lite/node-geoip", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "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:50.571106+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:50.571106+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:33:03.230281+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45feb19ae296ddbb9e823808e7b5dd71694a2b2f8119f3b3727220552c2d68df", "fetched_at": "2026-08-28T04:06:50.571106+00:00", "kind": "readme", "missing": false, "url": "https://github.com/geoip-lite/node-geoip"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 100, "rhythm": 77}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5508, "days_push": 77, "days_rel": 77, "gap_med": 41, "n_releases_24m": 4}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}