{"adoption": {"forks": 1243, "observed_at": "2026-08-28T04:10:46.630859+00:00", "stars": 11273}, "canonical_url": "https://ross.abutalabs.com/products/smartdns", "card": {"archived": false, "artifact_type": "service", "description": "A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器，获取最快的网站IP，获得最佳上网体验，支持DoH，DoT，DoQ。", "domain": ["networking", "privacy", "self-hosted", "developer-tools"], "enriched": true, "function": ["networking", "proxy", "security", "caching"], "health_score": 98, "homepage": "https://pymumu.github.io/smartdns/", "language": "C", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["pymumu/smartdns"], "name": "pymumu/smartdns", "platform": ["windows", "self-hosted", "cross-platform", "cli"], "pushed_at": "2026-08-12T18:37:04+00:00", "repo": "pymumu/smartdns", "stars": 11273, "tags": ["dns-server", "dns-over-https", "dns-over-tls", "dns-over-quic", "openwrt", "ad-blocking", "fastest-ip", "raspberry-pi", "router", "dns64", "ipv6", "linux"], "topics": ["smartdns", "openwrt-package", "dns-server", "dns-over-https", "dns-over-tls", "dns", "dot", "doh", "openwrt", "stubby", "nftables", "nftables-sets", "c", "dns64", "doh3", "doq"], "urls": [], "use_cases": ["speed up website access by resolving the fastest IP", "run a local DNS server with DNS over HTTPS/TLS/QUIC", "block ads and malicious domains via DNS", "split DNS queries across different upstream servers per domain", "set up DNS on an OpenWrt or ASUS router", "apply parental controls per client device by MAC or IP"], "what_it_is": "SmartDNS is a local DNS server written in C that queries multiple upstream DNS servers concurrently and returns the fastest-responding IP to clients, improving network access speed. It supports DoT, DoH, and DoQ for encrypted queries, per-client rules, domain-based routing, and ad filtering, and runs on Linux, OpenWrt, ASUS routers, Raspberry Pi, and Windows/WSL.", "when_to_avoid": ["you need a full recursive authoritative DNS server rather than a forwarding/caching resolver", "you want a GUI-first DNS solution with minimal configuration", "your platform is unsupported (e.g., non-Linux embedded systems outside OpenWrt/ASUS)"], "when_to_choose": ["you want faster browsing by picking the fastest IP from multiple upstream DNS servers", "you need encrypted DNS (DoT/DoH/DoQ) on a router or local network", "you want DNS-level ad filtering with high-performance domain matching", "you need per-client DNS rules or domain-based upstream routing with nftables/ipset integration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smartdns", "repo": "pymumu/smartdns", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "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:10:46.630859+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.630859+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:15:59.929002+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0b8098a14dbb9e970710827292db86097cd6180b027d26483eba51bd581ec6e", "fetched_at": "2026-08-29T08:14:41.524236+00:00", "kind": "homepage", "missing": false, "url": "https://pymumu.github.io/smartdns/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_readme"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3055, "days_push": 21, "days_rel": 28, "gap_med": 29, "n_releases_24m": 8}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}