A C++ Rewrite of the original Cardinal Core for improved performance.
- Install Docker.
- Run the Cardinal C++ Compiler Docker Repo to build the docker image.
- Run
./dev upwithin this repository.
- Install CLang C++ Compiler with support for C++ 17.
- Run command
./dev run
./dev ninjaCleans the build directory and refreshes CMakeLists for PowerTech C++ VSCode Extension../dev cleanCleans the build directory../dev downDocker Compose wrapper command which tears down the DC Project../dev upDocker Compose wrapper command which instantiates the DC Project../dev install_modulesDownloads dependency repos into the vendor file. Currently does not support downloading boost::di../dev installAlias of install_modules, see above../dev buildBuilds all dependencies if not previously built. Compiles cardinal-server binary file../dev runRuns the build command, and then executes the ~/build/bin/cardinal-server binary file../dev testRuns the UnitTest suite based on UnitTest-CPP.
- 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.