{"adoption": {"forks": 187, "observed_at": "2026-08-28T04:04:26.396387+00:00", "stars": 1343}, "canonical_url": "https://ross.abutalabs.com/products/sermant", "card": {"archived": false, "artifact_type": "framework", "description": "CNCF Sandbox project: A Cloud-Native Proxyless Service Mesh based on Java Bytecode Enhancement Technology", "domain": ["microservices", "cloud-computing", "backend"], "enriched": true, "function": ["middleware", "microservices", "plugin-system", "monitoring", "configuration-management"], "health_score": 73, "homepage": "https://sermant.io/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["sermant-io/Sermant"], "name": "sermant-io/Sermant", "platform": ["jvm", "cloud", "self-hosted"], "pushed_at": "2026-02-06T07:55:39+00:00", "repo": "sermant-io/Sermant", "stars": 1343, "tags": ["javaagent", "service-mesh", "proxyless", "bytecode-enhancement", "service-governance", "cncf-sandbox", "spring-cloud", "dubbo", "non-intrusive", "devops", "java"], "topics": ["javaagent", "sermant", "service-mesh", "dubbo", "springcloud", "cloud-native", "cncf", "microservice-architecture"], "urls": [], "use_cases": ["add service mesh governance to Java microservices without sidecar proxies", "instrument Spring Cloud or Dubbo applications without modifying source code", "implement traffic management, load balancing, and fault injection via JavaAgent", "build custom service governance plugins with a plugin development framework", "reduce latency and resource overhead compared to proxy-based service meshes", "dynamically configure governance rules for running microservices"], "what_it_is": "Sermant is a CNCF Sandbox proxyless service mesh built on Java bytecode enhancement (JavaAgent) technology. It adds service governance capabilities to Java microservice applications without code changes, with a plugin ecosystem for extending governance features.", "when_to_avoid": ["your services are polyglot and not JVM-based", "you prefer a mature full-featured mesh like Istio with sidecars", "you need governance for non-Java workloads", "you want a turnkey product rather than a framework requiring plugin development"], "when_to_choose": ["you run large-scale Java microservices (Spring Cloud, Dubbo) and want proxyless service governance", "you cannot modify application source code but need mesh-like capabilities", "you want to avoid sidecar proxy latency and resource costs", "you need a pluggable, extensible bytecode-enhancement framework for governance features"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sermant", "repo": "sermant-io/Sermant", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "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:26.396387+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:26.396387+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:43:02.042730+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fb439bece157dd11552d891ded6f4b5bcbbaa11eebf3c45f77b37be361b08ed", "fetched_at": "2026-08-28T04:04:26.396387+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sermant-io/Sermant"}, {"content_hash": "a8c0f4e085fe9acade894f8def3bbee31f515d3befd326fea577f6fc6f2c8d5c", "fetched_at": "2026-08-29T12:02:21.071292+00:00", "kind": "homepage", "missing": false, "url": "https://sermant.io/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 66, "longevity": 100, "rhythm": 28}, "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": 1822, "days_push": 208, "days_rel": 429, "gap_med": 38.0, "n_releases_24m": 7}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}