finds.dev← search

// the find

cloudwu/skynet

★ 14,081 · C · MIT · updated Jun 2026

A lightweight online game framework

Skynet is a C/Lua actor-model framework for building online game servers, where each logical service runs in its own Lua state and communicates via message passing. It's been the backbone of a significant slice of the Chinese MMO industry for over a decade. If you're building a game server that needs to handle thousands of concurrent actors without the overhead of OS threads per connection, this is the serious option in the Lua ecosystem.

The core design is sound: a fixed C thread pool drives a Lua coroutine scheduler per actor, so you get concurrency without data races between services. The built-in cluster module lets you span multiple nodes with location-transparent addressing, which most game frameworks make you bolt on later. It ships batteries — Redis, MySQL, MongoDB drivers, sproto (its own compact binary protocol), TLS, websocket — so you're not assembling a tower of third-party packages on day one. The test suite covers edge cases that matter for game servers: dead loops, overload detection, harbor link failures, timer precision.

The documentation is predominantly in Chinese, and the English wiki is a partial translation that lags behind the code — you will end up reading Chinese forum posts and GitHub discussions with a machine translator if you go deep. The framework ships its own modified Lua 5.5 fork (ejoy/lua) which diverges from upstream; if you depend on a Lua library that assumes standard behavior, you may hit subtle incompatibilities. Windows support exists via a compat-mingw shim layer that is clearly a second-class citizen — the socket layer uses wepoll as an epoll stand-in, and production deployments are assumed Linux. There's no structured observability story: debugging a misbehaving actor cluster means grepping logs and using the debug console, which works but won't satisfy anyone used to distributed tracing.

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 →