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 semantics
- cpp/test/storage_predicates_test.cpp— AND/OR/NOT and nested filters, plus corner cases
- cpp/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/- @ingroupin headers to structure API docs
- Prefer - Result<T>and- Statusfor error handling in new APIs