finds.dev← search

// the find

lonng/nano

★ 3,200 · Go · MIT · updated Feb 2026

Lightweight, facility, high performance golang based game server framework

Nano is a Go game server framework modeled after Pomelo (Node.js), providing session management, message routing, WebSocket/TCP support, and a built-in cluster mode via gRPC. It targets real-time multiplayer games where you want a structured component/handler pattern without rolling your own protocol layer. The Chinese gaming community is the primary user base — most examples and production cases are from there.

Built-in cluster support using gRPC for node-to-node communication is well thought out — gate/master/backend node topology is a real pattern that works for games. The single-goroutine scheduler with `nano.Invoke()` for async callbacks is a clean solution to the classic 'DB call from game loop' problem. Both protobuf and JSON serialization are first-class with a clean interface, so you're not locked in. Route compression (string → integer mapping) is a practical bandwidth optimization that matters at scale on mobile.

Last meaningful activity was years ago despite the recent push date — the cluster example still ships a vendored `starx-wsclient.js` and the Lua integration doc is marked 'incomplete' and links to nowhere. The global scheduler is a single goroutine; high-frequency games with many rooms will hit contention and there's no built-in sharding. No reconnect/session resume support — clients that drop mid-game are just gone, which is a real problem for mobile. The only documented production case is a single Chinese mahjong game, so there's limited evidence this holds up under serious load.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →