{"adoption": {"forks": 673, "observed_at": "2026-08-28T04:05:20.155823+00:00", "stars": 1671}, "canonical_url": "https://ross.abutalabs.com/products/nettygameserver", "card": {"archived": false, "artifact_type": "framework", "description": "使用netty4.X实现的手机游戏分布式服务器,支持tcp,udp,http,websocket链接，采用protobuf自定义协议栈进行网络通信,支持rpc远程调用,使用mybatis3支持db存储分库分表，支持异步mysql存储，db保存时同步更新reids缓存。 使用ExcelToCode工程，将excel数据生成java类和json数据字典，DictService直接读取json，减少数据字典部分代码。使用game-executor工程，增加游戏内的异步事件全局服务, 支持事件sharding,均衡的异步执行事件逻辑", "domain": ["backend", "microservices", "networking", "gaming-tools"], "enriched": true, "function": ["rpc", "http-server", "websocket", "serialization", "caching", "database", "middleware", "game-engine"], "health_score": 66, "homepage": null, "language": "Java", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["jwpttcg66/NettyGameServer"], "name": "jwpttcg66/NettyGameServer", "platform": ["jvm", "cross-platform", "self-hosted"], "pushed_at": "2026-04-14T09:09:15+00:00", "repo": "jwpttcg66/NettyGameServer", "stars": 1671, "tags": ["netty", "game-server", "protobuf", "mybatis", "redis", "mysql-sharding", "spring-boot", "mobile-game-server", "async-db", "gateway-proxy", "excel-to-code", "game-development"], "topics": ["game-server", "gameserver", "rpcserver", "netty-game-server", "netty-server", "nettygame", "game-db", "redis", "async-db", "game-proxy", "netty", "http-server", "httpserver", "web-socket-server", "game", "game-engine", "springboot", "mysql-server", "cocosserver"], "urls": [], "use_cases": ["build a distributed backend server for a mobile game", "implement tcp and websocket game networking with protobuf", "shard game database writes across mysql with redis caching", "add rpc between game server nodes", "run async game event logic with balanced sharding", "generate game data dictionaries from excel spreadsheets", "set up a gateway proxy for game client connections"], "what_it_is": "A distributed mobile game server framework built on Netty 4.x in Java, supporting TCP, UDP, HTTP, and WebSocket connections with a custom protobuf protocol stack. It includes RPC remote calls, MyBatis-based database sharding with async MySQL persistence and Redis cache sync, gateway proxying, and an async event executor with event sharding.", "when_to_avoid": ["you need a turnkey game engine with rendering or client-side features", "your stack is not JVM-based", "you need a small single-process game server without distributed architecture"], "when_to_choose": ["building a multiplayer mobile game backend in Java", "you need netty-based high-performance networking with multiple transport protocols", "you want built-in db sharding, async persistence, and redis caching for game data"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nettygameserver", "repo": "jwpttcg66/NettyGameServer", "role": "main", "score": 57}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "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:05:20.155823+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.155823+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:42:41.372127+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "044c9d1b77ffce279dddbca4c452ea4689c6a215dc4d5e6d52a78c58e23fb091", "fetched_at": "2026-08-28T04:05:20.155823+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jwpttcg66/NettyGameServer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 77, "longevity": 100, "rhythm": 8}, "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": 3494, "days_push": 141, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 57, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}