Getting Started
Welcome to KadeDB development. This guide helps you build the core, run tests, and explore examples quickly.
Prerequisites
CMake 3.21+
A C++17 compiler (GCC/Clang/MSVC)
Python (optional, for Sphinx docs)
Build the Core (via CMake Presets)
cmake -S . --preset debug
cmake --build --preset debug -j
Run tests:
ctest --output-on-failure
Explore the Relational Storage Examples
cpp/examples/inmemory_rel_example.cpp
(create/insert/select, AND/OR/NOT)cpp/examples/inmemory_rel_errors_example.cpp
(invalid schema, duplicate unique, composite predicates)
Build targets are created automatically; binaries are in build/<preset>/bin/
.
Key Tests to Read
cpp/test/storage_api_test.cpp
— end-to-end relational API semanticscpp/test/storage_predicates_test.cpp
— AND/OR/NOT and nested filters, plus corner casescpp/test/document_predicates_test.cpp
— document queries with composite predicates
Run a subset of tests:
# From the build directory for your preset
ctest --output-on-failure -R "kadedb_(storage|document)_predicates_test"
Developer Docs (API Reference)
We generate Doxygen XML and render Sphinx HTML. The CI workflow publishes to GitHub Pages.
Online: https://medilang.github.io/KadeDB/
Locally:
doxygen docs/Doxyfile sphinx-build -b html docs/sphinx docs/sphinx/_build/html
Where to Start Contributing
Improve docs or add examples under
cpp/examples/
Add tests in
cpp/test/
Extend the in-memory storages or add new API groups
Style and Conventions
Public headers are under
cpp/include/kadedb/
Core implementations are under
cpp/src/core/
Use
@defgroup
/@ingroup
in headers to structure API docsPrefer
Result<T>
andStatus
for error handling in new APIs