Thank you for considering to contribute to this project!
If you encountered a bug or want to make a feature request then do not hesitate to create a new issue. I am happy to look into it.
If you intend to work on the code then please follow the steps below.
You will need a C++ compiler, CMake (3.19+) and a way of installing this project's dependencies: gRPC, Boost, standalone Asio, libunifex and doctest. I recommend vcpkg. Head over to their github repository for more details, but in general the following should get you started:
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.bat # or bootstrap-vcpkg.sh on Linux
From the root of the repository run:
# Make sure the VCPKG_ROOT env variable points to the cloned vcpkg repository
cmake --preset default
It might take a while until vcpkg has installed all dependencies.
Compile the tests and examples with:
cmake --build --preset default
And run all tests:
ctest --preset default
Before making a commit, install the latest version of clang-format (part of clang-tools-extra) and cmake-format. Re-run the CMake configure step and finally run:
cmake --build --preset default --target asio-grpc-init-git-hooks