About this project

# Moon Moon is a lightweight game server framework implemented with the Actor Model in C++23. One worker thread can host one or more actors (services) that communicate through message queues. ## Features - **Cross-platform**: Windows (VS2022 17.5+), Linux (GCC 13+), macOS (Clang 16+) - **Networking**: TCP, UDP/KCP, WebSockets, HTTP with optimized performance - **Lua scripting**: Logic driven by Lua with async coroutine support for sockets, timers, inter-service/inter-process communication - **Database clients**: Async drivers for Redis, PostgreSQL, MongoDB, and MySQL - **Libraries**: Optimized Lua JSON library, Lua Protobuf, Lua filesystem, Lua zset for rank lists - **Navigation**: Recast Navigation integration - **Simple architecture**: Concise, easy-to-understand source code - **ASIO-based scheduling** ## Quick Start ```shell # Run tests ./moon example/test/main_test.lua # Run example scripts ./moon example/example_timer.lua ./moon example/main_game.lua ``` ## Build 1. Install a C++23 compiler (VS2022 17.5+, GCC 13+, or Clang 16+) 2. Install [premake5](https://premake.github.io/download) 3. Clone the repository 4. Build: `premake5 build --release` 5. Run: `premake5 run --release example/send_benchmark.lua` ## Community - [Gitter](https://gitter.im/undefined/community) - [Wiki/Documentation](https://github.com/sniper00/moon/wiki) - QQ group: 543833695 ## Extensions Additional libraries available at https://github.com/sniper00/lrust ## Demo [MoonDemo](https://github.com/sniper00/MoonDemo.git) ## Use Cases Games built with Moon include *Age of Kita* and *战神遗迹* (War God Ruins). ## Related Projects - [NoahGameFrame](https://github.com/ketoo/NoahGameFrame)