Moon is a lightweight online game server framework implement with actor model. One thread may have 1-N luaVM, they use message queue communication. There are many features for game server development:
- Less core code, easy to learn
- Cross-platform (Windows, Linux, MacOS)
- Optimized networking
- tcp
- websockets
- http
- Lua coroutine based asynchronous
- coroutine-socket
- timer
- inter luaVM communication
- inter cluster(process) communication
- redis/mysql/pgsql/mongodb async driver
- High performance and optimized Lua Json library
- Lua protobuf library
- Lua filesystem
- Recast Navigation
https://github.com/sniper00/moon/wiki
https://github.com/sniper00/moon/releases
# run echo server
./moon example/helloworld.lua
# another terminal run client(coroutine socket writed)
./moon example/helloworld_client.lua
# input any string
-
Make sure your compiler(msvc2019, gcc 9.3+, clang 9.0+) support for C++17 or Install
C++17
Compiler.。 -
Moon uses premake5 to build platform specific projects. Download it and make sure it's available on your path.
-
Clone source code
git clone https://github.com/sniper00/moon.git
-
If want link mimalloc, edit premake5.lua
local MOON_ENABLE_MIMALLOC = true
-
Build
- windows run
build.bat
。 - linux:
chmod +x build.sh chmod +x premake5 ./build.sh
- macosx:
./premake5 gmake --cc=clang make clean config=release make config=release
If failed,See detail steps。
- windows run