Skip to main content

Building

Dependencies

PackageMin VersionPurpose
CMake3.25Build system
Ninja1.11Build backend
Clang17C++23 compiler
liburing2.4io_uring API
libsodium1.0.18Curve25519, XSalsa20
libspdlog1.12Logging
OpenSSL3.0TLS, kTLS support

On Debian/Ubuntu:

sudo apt install cmake ninja-build clang \
liburing-dev libsodium-dev libspdlog-dev libssl-dev

CMake Presets

# Release (default)
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

# Debug (ASAN + assertions)
cmake -B build-debug -G Ninja \
-DCMAKE_BUILD_TYPE=Debug
cmake --build build-debug -j$(nproc)

Cross-Compile for ARM64

sudo apt install gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu

cmake -B build-arm64 -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=aarch64 \
-DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++

cmake --build build-arm64 -j$(nproc)

Running Tests

cd build && ctest --output-on-failure

Tests require a kernel with io_uring support (5.11+). Some kTLS tests require 5.19+.