{"adoption": {"forks": 1177, "observed_at": "2026-08-28T04:10:20.262169+00:00", "stars": 8312}, "canonical_url": "https://ross.abutalabs.com/products/rpcx", "card": {"archived": false, "artifact_type": "framework", "description": "Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱! build for cloud!", "domain": ["microservices", "backend", "apis", "developer-tools"], "enriched": true, "function": ["rpc", "microservices", "service-discovery", "middleware", "serialization", "api-framework"], "health_score": 93, "homepage": "https://rpcx.io", "language": "Go", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["smallnest/rpcx"], "name": "smallnest/rpcx", "platform": ["go", "cross-platform", "windows"], "pushed_at": "2026-07-10T13:19:21+00:00", "repo": "smallnest/rpcx", "stars": 8312, "tags": ["dubbo-like", "grpc-alternative", "no-idl", "service-governance", "quic", "kcp", "plugin-architecture", "high-performance", "load-balancing", "linux", "macos"], "topics": ["dubbo", "rpc", "grpc", "service-discovery", "microservice", "microservices"], "urls": [], "use_cases": ["build microservices in Go with RPC instead of REST", "dubbo-like service governance framework for Go", "rpc framework without protobuf IDL definitions", "service discovery and load balancing for Go backends", "high-performance RPC alternative to grpc-go", "call Go services from Java or other languages", "broadcast and async RPC calls across service instances"], "what_it_is": "rpcx is a high-performance distributed RPC framework for Go, comparable to Alibaba Dubbo but designed natively for Go without requiring proto/IDL files. It provides service discovery, load balancing, failover, circuit breaking, and pluggable transports (TCP, HTTP, QUIC, KCP, WebSocket, RDMA) with cross-language clients via gateway and Java/Rust implementations.", "when_to_avoid": ["your team is standardized on gRPC and needs its ecosystem and tooling", "you need browser-native clients without a gateway layer", "you require a license with guaranteed permissive terms (license file is non-standard)", "you only need simple HTTP/JSON APIs rather than binary RPC"], "when_to_choose": ["you want Dubbo-style RPC with service discovery, failover, and circuit breaking in Go", "you prefer defining services as plain Go methods without writing proto files", "you need multiple transports like QUIC, KCP, or RDMA", "you need cross-language access via gateway, Java, or Rust clients"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rpcx", "repo": "smallnest/rpcx", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.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:10:20.262169+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.262169+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:28:03.579656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa2b479e50af248613044403ad48647dc5e63b66285695561539c15cc1bace46", "fetched_at": "2026-08-28T04:10:20.262169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/rpcx"}, {"content_hash": "f03ff005bbf921c81e55a0f12ed18d96df0ba301b118164502e68c4d018aaa75", "fetched_at": "2026-08-29T08:27:40.921856+00:00", "kind": "homepage", "missing": false, "url": "https://rpcx.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 45}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3759, "days_push": 54, "days_rel": 154, "gap_med": 213.5, "n_releases_24m": 3}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}