{"adoption": {"forks": 324, "observed_at": "2026-08-28T04:07:24.715463+00:00", "stars": 2840}, "canonical_url": "https://ross.abutalabs.com/products/motiv-labs-janus", "card": {"archived": false, "artifact_type": "service", "description": "An API Gateway written in Go", "domain": ["apis", "microservices", "backend", "developer-tools", "self-hosted"], "enriched": true, "function": ["api-gateway", "proxy", "middleware", "rate-limiting", "auth", "tracing", "http-server"], "health_score": 20, "homepage": "https://hellofresh.gitbooks.io/janus", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["motiv-labs/janus"], "name": "motiv-labs/janus", "platform": ["windows", "go", "cross-platform"], "pushed_at": "2024-07-08T07:17:06+00:00", "repo": "motiv-labs/janus", "stars": 2840, "tags": ["reverse-proxy", "api-management", "single-binary", "hot-reload", "circuit-breaker", "opentracing", "linux", "macos", "docker"], "topics": ["api-gateway", "proxy", "go", "api", "microservices", "reverse-proxy", "platform", "engineering-experience-squad"], "urls": [], "use_cases": ["manage access control and rate limiting for my microservices apis", "self-host an open-source api gateway in go", "add authentication and api keys in front of my backend services", "proxy and route requests to multiple upstream services", "monitor api usage and analytics without building my own middleware", "get circuit breaker and retry logic for upstream services"], "what_it_is": "Janus is a lightweight, open-source API Gateway and management platform written in Go, distributed as a single binary. It handles authorization, access control, rate limiting, and analytics for APIs, with hot-reloading configuration and OpenTracing support.", "when_to_avoid": ["you need a large plugin ecosystem or extensive enterprise features", "you require active, frequent maintenance - releases have slowed", "you need deep cloud-native integrations beyond OpenTracing", "your stack is not comfortable operating a Go-based self-hosted component"], "when_to_choose": ["you want a lightweight, single-binary gateway with no dependency hell", "you need programmatic REST API control over gateway configuration", "you want hot-reloading config and graceful shutdown out of the box", "you prefer a simple open-source alternative to Kong or Tyk"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/motiv-labs-janus", "repo": "motiv-labs/janus", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "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:07:24.715463+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.715463+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:37:16.647552+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f609c8a13eee02626e4054ed22fafc85abc24c3773a01641715bc6fe400c5b1a", "fetched_at": "2026-08-28T04:07:24.715463+00:00", "kind": "readme", "missing": false, "url": "https://github.com/motiv-labs/janus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3705, "days_push": 786, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}