{"adoption": {"forks": 277, "observed_at": "2026-08-28T04:04:50.872935+00:00", "stars": 1480}, "canonical_url": "https://ross.abutalabs.com/products/chproxy", "card": {"archived": false, "artifact_type": "service", "description": "Open-Source ClickHouse http proxy and load balancer", "domain": ["databases", "backend", "self-hosted", "analytics"], "enriched": true, "function": ["proxy", "load-testing", "caching", "rate-limiting", "auth", "monitoring", "http-server"], "health_score": 81, "homepage": "https://www.chproxy.org/", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["ContentSquare/chproxy"], "name": "ContentSquare/chproxy", "platform": ["go", "self-hosted", "cross-platform"], "pushed_at": "2026-04-15T07:11:53+00:00", "repo": "ContentSquare/chproxy", "stars": 1480, "tags": ["clickhouse", "load-balancer", "http-proxy", "reverse-proxy", "prometheus-metrics", "lets-encrypt", "linux", "macos", "docker"], "topics": ["clickhouse", "proxy", "clickhouse-proxy", "load-balancer"], "urls": [], "use_cases": ["proxy http requests to multiple clickhouse clusters", "load balance queries across clickhouse replicas", "hide real clickhouse credentials behind mapped proxy users", "rate limit and cap concurrent queries per user", "cache clickhouse query responses with thundering herd protection", "expose prometheus metrics for a clickhouse proxy"], "what_it_is": "Chproxy is an open-source HTTP proxy and load balancer for ClickHouse databases, written in Go. It routes requests across multiple ClickHouse clusters, maps and hides credentials, enforces per-user limits, caches responses, and exposes Prometheus metrics.", "when_to_avoid": ["you need the ClickHouse native protocol - chproxy only proxies HTTP", "you prefer inserting data directly without a proxy, since native protocol inserts are faster", "you need a generic proxy for databases other than ClickHouse"], "when_to_choose": ["you serve ClickHouse over HTTP and need load balancing, user mapping, and per-user quotas in one gateway", "you need response caching, IP allowlists, or automatic HTTPS via Let's Encrypt in front of ClickHouse", "you want a battle-tested, production-ready proxy with Prometheus metrics and hot config reload"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chproxy", "repo": "ContentSquare/chproxy", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "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:04:50.872935+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.872935+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:12.372013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7f6703c7c242f1285d3040b47e194e07820257a302c7d6bddd6d823585f86f2", "fetched_at": "2026-08-28T04:04:50.872935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ContentSquare/chproxy"}, {"content_hash": "54292df1d685b7828e34c246b01c17c90544a3df5b7e54799331e7e1e44ac33c", "fetched_at": "2026-08-29T11:40:59.408998+00:00", "kind": "homepage", "missing": false, "url": "https://www.chproxy.org/"}, {"content_hash": "b5620be4740d6babcf685e2b03bd00435628eaaaa28aa9bbffdcb0d6b0973fcf", "fetched_at": "2026-08-29T11:40:59.411537+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/install"}, {"content_hash": "bf0a165d6b32a7cfe02051eac3aaaa5664ee623a76ea409c96f1a3353ca1ca8a", "fetched_at": "2026-08-29T11:40:59.413452+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/changelog"}, {"content_hash": "6f0a8d631bc98620392d0e7860dbaeadf184a4516a7f92ca9535a9227692e1a4", "fetched_at": "2026-08-29T11:40:59.415341+00:00", "kind": "site_page", "missing": false, "url": "https://www.chproxy.org/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 77, "longevity": 100, "rhythm": 47}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3271, "days_push": 140, "days_rel": 357, "gap_med": 29, "n_releases_24m": 10}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}