{"adoption": {"forks": 1201, "observed_at": "2026-08-28T04:09:43.461775+00:00", "stars": 6446}, "canonical_url": "https://ross.abutalabs.com/products/geocoder", "card": {"archived": false, "artifact_type": "library", "description": "Complete Ruby geocoding solution.", "domain": ["web-development", "developer-tools"], "enriched": true, "function": ["geospatial", "http-client", "caching", "cli"], "health_score": 78, "homepage": "http://www.rubygeocoder.com", "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["alexreisner/geocoder"], "name": "alexreisner/geocoder", "platform": ["ruby", "jvm", "cli"], "pushed_at": "2026-08-09T15:42:53+00:00", "repo": "alexreisner/geocoder", "stars": 6446, "tags": ["geocoding", "forward-geocoding", "reverse-geocoding", "ip-geolocation", "activerecord", "mongoid", "rails", "rack", "multi-api", "maps", "web-server"], "topics": ["geocoding", "geocoding-api", "geocoding-objects", "geocoding-requests"], "urls": [], "use_cases": ["convert street addresses to latitude and longitude in ruby", "reverse geocode coordinates to a street address", "look up the location of an ip address", "find records near a city or point with activerecord", "calculate distance and bearing between two places", "geocode model records automatically in rails", "batch geocode a list of addresses"], "what_it_is": "A complete Ruby geocoding library supporting forward and reverse geocoding of addresses, coordinates, and IP addresses via 40+ external APIs. It integrates with ActiveRecord and Mongoid, provides geospatial queries like radius search, caching, and a command line interface.", "when_to_avoid": ["your project is not in Ruby", "you need advanced GIS operations beyond basic geospatial queries", "you require guaranteed accuracy without evaluating the underlying geocoding APIs", "you need fully offline geocoding with no external API calls"], "when_to_choose": ["you are building a Ruby or Rails app that needs address or IP geocoding", "you want a single library that works with many geocoding providers", "you need geospatial queries like near, distance_to, and bearing_to on your models", "you want result caching and proxy support built in"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/geocoder", "repo": "alexreisner/geocoder", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "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:09:43.461775+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.461775+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:44:40.302967+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "416e51e5c200f3b3d82c685d48ff171bc96896e6145867c5b0647f2926427a77", "fetched_at": "2026-08-28T04:09:43.461775+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexreisner/geocoder"}, {"content_hash": "b72a25c0497f61c98da86d6b579a5dc04c3ac9134a4ec2f86a50397fe3f3af19", "fetched_at": "2026-08-29T08:41:23.049847+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubygeocoder.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 6349, "days_push": 24, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}