{"adoption": {"forks": 186, "observed_at": "2026-08-28T04:06:12.155293+00:00", "stars": 2088}, "canonical_url": "https://ross.abutalabs.com/products/trickster", "card": {"archived": false, "artifact_type": "service", "description": "Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator", "domain": ["monitoring", "databases", "web-development", "analytics"], "enriched": true, "function": ["caching", "proxy", "http-server", "monitoring", "tracing", "load-testing"], "health_score": 100, "homepage": "https://trickstercache.org", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["trickstercache/trickster"], "name": "trickstercache/trickster", "platform": ["windows", "go", "self-hosted", "cross-platform"], "pushed_at": "2026-08-26T05:46:41+00:00", "repo": "trickstercache/trickster", "stars": 2088, "tags": ["reverse-proxy", "time-series-databases", "prometheus", "influxdb", "clickhouse", "dashboard-acceleration", "delta-proxy-cache", "collapsed-forwarding", "byte-range-caching", "application-load-balancer", "cncf-sandbox", "devops", "linux", "macos", "docker"], "topics": ["prometheus", "dashboards", "caching", "accelerator", "tsdb", "influxdb", "http-proxy", "clickhouse", "reverse-proxy", "golang", "performance"], "urls": [], "use_cases": ["speed up grafana dashboard queries against prometheus", "cache http api responses behind a reverse proxy", "accelerate time series database queries for dashboards", "load balance requests across multiple time series backends", "cache byte range requests for large files", "reduce redundant queries from multiple dashboard users", "add negative caching to prevent cascading outages", "route and rewrite http requests with a rules engine"], "what_it_is": "Trickster is an open-source HTTP reverse proxy cache written in Go that also acts as a query accelerator for time series databases like Prometheus, InfluxDB, and ClickHouse. It is a CNCF sandbox project offering features such as an application load balancer, delta proxy caching, byte-range caching, collapsed forwarding, and rules-based request routing.", "when_to_avoid": ["you need a general-purpose web server or full CDN with edge distribution", "your stack has no time series or cacheable HTTP workloads", "you need a proxy for non-HTTP protocols", "you want a fully managed cloud caching service without self-hosted infrastructure"], "when_to_choose": ["you serve time series dashboards (grafana, prometheus, influxdb, clickhouse) and want faster chart rendering", "you need an http reverse proxy with pluggable cache backends like redis, filesystem, or in-memory", "you want collapsed forwarding to deduplicate concurrent identical requests", "you need an application load balancer with time-series-aware request splitting"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/trickster", "repo": "trickstercache/trickster", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "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:12.155293+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:12.155293+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:55:43.092290+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b42d40470b16e1439dd321aba68fea3f2831c90c2241fb93b1781125d1f2fb86", "fetched_at": "2026-08-28T04:06:12.155293+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trickstercache/trickster"}, {"content_hash": "3cd0155638046952055ccbb383e2a10788507075af584797337fecb58007c7ef", "fetched_at": "2026-08-29T10:35:35.077173+00:00", "kind": "homepage", "missing": false, "url": "https://trickstercache.org"}, {"content_hash": "430cc02e56705f4f75bc017c65734ce2f058f272e72c87662925298828c5c6f5", "fetched_at": "2026-08-29T10:35:35.086138+00:00", "kind": "site_page", "missing": false, "url": "https://trickstercache.org/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3079, "days_push": 7, "days_rel": 33, "gap_med": 10, "n_releases_24m": 6}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}