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)
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.