{"adoption": {"forks": 228, "observed_at": "2026-08-28T04:05:01.370823+00:00", "stars": 1544}, "canonical_url": "https://ross.abutalabs.com/products/node-ip", "card": {"archived": false, "artifact_type": "library", "description": "IP address tools for node.js", "domain": ["networking", "developer-tools", "backend"], "enriched": true, "function": ["developer-tools", "networking", "serialization"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["indutny/node-ip"], "name": "indutny/node-ip", "platform": [], "pushed_at": "2024-08-20T06:56:14+00:00", "repo": "indutny/node-ip", "stars": 1544, "tags": ["ip-address", "ipv4", "ipv6", "subnet", "cidr", "npm", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["get the machine's local IP address in node.js", "validate whether a string is a valid IPv4 or IPv6 address", "calculate subnet information from a CIDR notation", "convert an IP address to a buffer or long integer and back", "check if an IP address is private", "compare two IP addresses for equality", "compute network and broadcast addresses from an IP and subnet mask"], "what_it_is": "A Node.js library providing IP address utilities for parsing, validating, comparing, and converting IPv4 and IPv6 addresses. It supports subnet calculations, CIDR operations, buffer conversions, and private-address detection.", "when_to_avoid": ["you need geolocation or public IP lookup - this library does not do network requests", "you are working outside Node.js (e.g., browser or Python)", "you need actively developed features or guaranteed security patches, as the project is in maintenance mode"], "when_to_choose": ["you need lightweight IP address parsing and manipulation in a Node.js project", "you need subnet/CIDR math like network address, broadcast, or range containment checks", "you need to serialize IP addresses into buffers for network protocols"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/node-ip", "repo": "indutny/node-ip", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "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:05:01.370823+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.370823+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:30:38.338183+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "059fcdeafb68ab683a956378f222e85f71554ebe456f328f01632db760c266fd", "fetched_at": "2026-08-28T04:05:01.370823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/indutny/node-ip"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5131, "days_push": 743, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}