\tableofcontents
Build tools:
- CMake ≥ 3.19
- C++17 compiler (
g++orclang++)
System libraries (Debian/Ubuntu):
sudo apt install -y libuv1-dev libssl-dev libcurl4-openssl-devRuntime:
- A running DCDB deployment (Cassandra backend, default port 9042).
- A running InfluxDB instance reachable from the daemon host.
Managed dependencies are cloned and built by two helper scripts in extern/.
They are installed into extern/installed/ and never need to be installed system-wide.
| Library | Version | Purpose |
|---|---|---|
| cpr | 1.14.2 | C++ HTTP client |
| influxdb-cxx | 0.8.1 | InfluxDB C++ client |
| cpp-driver | 2.17.1 | Cassandra C/C++ driver (required by QDMI-Devices) |
| QDMI-Devices | — | DCDB backend (libdcdb_device.so) |
# Core deps only (cpr + influxdb-cxx):
bash extern/clone.sh
# Also include QDMI-Devices and the Cassandra driver:
bash extern/clone.sh --with-qdmi-devices# Core deps only:
bash extern/build.sh
# With QDMI-Devices — let CMake fetch and build DCDB automatically:
bash extern/build.sh --with-qdmi-devices --with-dcdb
# With QDMI-Devices — point to a pre-installed DCDB:
bash extern/build.sh --with-qdmi-devices --dcdb-root /path/to/DCDBUse bash extern/build.sh --help for all options (e.g. --jobs N, --force).
After a successful build the layout under extern/ is:
extern/
installed/ ← cpr, influxdb-cxx, cassandra driver
QDMI-Devices/build/
src/databases/dcdb/ ← libdcdb_device.so + headers
_deps/qdmi-src/include/ ← QDMI core headers
_deps/dcdb-src/lib/include/ ← DCDB headers
_deps/dcdb-build/lib/ ← libdcdb.so
All library paths are computed automatically relative to the repository root:
source build/export_qdmi_dcdb_deps.shWith the environment variables set, configure and build:
cmake -S . -B build
cmake --build build -jThe daemon binary is placed at build/mqss_dcdb_daemon.