- accept packet
- async sleep for (relevant time-delay) seconds
- fast "random" number gen for bit flipping
- release packet
The project requires CMake, a CMake backend (Make or Ninja), and a C++ compiler (GCC or Clang).
Once these have been obtained the project can be build using
cmake -S . -B build/; cmake --build build/This will build a debug build by default. To build a release build for deployment before something like a demo or what have you, run the following:
cmake -DCMAKE_BUILD_TYPE=Release -S . -B build/; cmake --build build/Note that CMake will not regenerate the build cache when changing flags, so if going from a normal to release build or back one must remove the build cache directory, by default build.
A neat way to remove all files not tracked by git is
git clean -fdxPlease install
clangdfor messages in editor. It should also give in editor formattingclang-tidyfor linting files during buildclang-formatfor formatting the files.
Adhering to the formatting and linting requirements will be required by CI, and code cannot be merged unless it meets the requirements.
This project has a nix flake!
It is structured using Blueprint.
It has a development shell with required deps, all formatters configured with Treefmt, and packages for building both in Release and Debug modes.
To build a debug build use
nix build .#lunar-network-daemon-debugand release is
nix build .#lunar-network-daemon