finds.dev← search

// the find

davyxu/cellnet

★ 4,061 · Go · MIT · updated Mar 2024

High performance, simple, extensible golang open source network library

cellnet is a Go networking library aimed at game server development, built around composable Peers (TCP/UDP/WebSocket/HTTP acceptors and connectors), pluggable codecs (protobuf, JSON, binary), and a queue-based message dispatch model. It's designed for the Chinese game industry and most of its documentation, comments, and community discussion are in Chinese. If you're building a game backend in Go and want something with more structure than raw net.Conn but less ceremony than gRPC, this fits that niche.

The Peer/Processor abstraction is genuinely clean — swapping TCP for WebSocket is a one-line change at the binding site, not a rewrite. The queue-based dispatch model lets you pick single-threaded-async (safe shared state, no locks) or multi-threaded-concurrent per use case, which is exactly what game servers need. Built-in RPC support (sync and async) with timeout handling saves you from bolting that on yourself. Message logging with per-field visibility is a practical debugging feature that most networking libs make you implement yourself.

Last meaningful activity was 2024 but the library itself hasn't seen a real commit in years — v4 shipped in 2018 and the architecture hasn't moved since, so you're adopting something that won't track changes in Go's networking ecosystem or module conventions. HTTP support is explicitly flagged as experimental and the README tells you to use gin instead, which raises the question of why it's in the library at all. The entire documentation is in Chinese with no English translation, which makes debugging deep issues painful for anyone outside that community. No context propagation anywhere in the API — cancellation and deadlines have to be bolted on externally, which is a real gap for anything running in a modern cloud environment.

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 →