BlankFoxGirl / cardinal-cpp

Cardinal is a scalable distributed event driven MMORPG Server framework used to provide development simplicity through event definitions and provides Terraform for all major CSPs to deploy Kubernetes pods and supports AWS ECS.

Home Page:https://cardinalcore.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cardinal Code C++

CodeQL

A C++ Rewrite of the original Cardinal Core for improved performance.

How to start;

Docker Compose (Recommended for Integration Testing)

  1. Install Docker.
  2. Run the Cardinal C++ Compiler Docker Repo to build the docker image.
  3. Run ./dev up within this repository.

Local Build and Run (Recommended for Development [Quick and Dirty])

  1. Install CLang C++ Compiler with support for C++ 17.
  2. Run command ./dev run

Additional Commands:

  • ./dev ninja Cleans the build directory and refreshes CMakeLists for PowerTech C++ VSCode Extension.
  • ./dev clean Cleans the build directory.
  • ./dev down Docker Compose wrapper command which tears down the DC Project.
  • ./dev up Docker Compose wrapper command which instantiates the DC Project.
  • ./dev install_modules Downloads dependency repos into the vendor file. Currently does not support downloading boost::di.
  • ./dev install Alias of install_modules, see above.
  • ./dev build Builds all dependencies if not previously built. Compiles cardinal-server binary file.
  • ./dev run Runs the build command, and then executes the ~/build/bin/cardinal-server binary file.
  • ./dev test Runs the UnitTest suite based on UnitTest-CPP.

Dependencies:

  • Cardinal uses Redis++ which has a library dependency for Hiredis, you must install hiredis before you can build Cardinal or Redis++. Hiredis Official Repo
  • Cardinal may not compile in certain C++ compilers, it is recommended to use CLang to compiler as Cardinal was designed and tested using CLang, there are known issues with g++.
  • Cardinal is designed to use docker (recommended) for containerisation. However Containerd and Rancher should be adequate.
  • Cardinal comes with its own Docker Image to manage compilation for containerized environments, please refer to Cardinal-Compiler on Docker Hub. Source Code: Cardinal-Compiler Repo
  • Boost::DI Header Library for Dependency Injection.
  • UnitTest C++ for Test Library.
  • Eranpeer/FakeIt for Mock Library.

Note: Cardinal is designed to compile and run as a docker images / containers. It is not designed to run on a standalone linux system, however, the Cardinal binary file is compiled using docker containers from linux images, this means that with some minor tweaking to the dockerfile you can build Cardinal for your target platform with relative ease.

About

Cardinal is a scalable distributed event driven MMORPG Server framework used to provide development simplicity through event definitions and provides Terraform for all major CSPs to deploy Kubernetes pods and supports AWS ECS.

https://cardinalcore.io

License:MIT License


Languages

Language:C++ 92.1%Language:Shell 4.8%Language:CMake 2.7%Language:Dockerfile 0.3%Language:C 0.1%