An ultra lightweight & fast, portable & type-safe in-memory database optimized for OLTP workloads.
- PawnDB is written in ISO C++17, without any compiler extensions.
- PawnDB follows Google coding style.
Hard requirements:
-
clang
version > 16.0, orgcc
version > 8.0. -
cmake
version > 3.20. -
ninja
build system. -
doxygen
for generating document html. (Optional) -
gcovr
for showing test coverage report. (Optional) -
clang-format
version > 18.0. (Optional)
Use the following command to build and run the executable target.
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/clang.cmake
cmake --build build --target pawndb-app
./build/standalone/pawndb-app
Use the following commands from the project's root directory to run the test suite.
cmake -S . -B build -DPAWNDB_ENABLE_TEST -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/clang.cmake
cmake --build build --target clean-coverage
cmake --build build --target run-all-tests
cmake --build build --target show-test-coverage
cmake -S . -B build -DPAWNDB_ENABLE_STYLE -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/clang.cmake
cmake --build build --target check-clang-format
cmake -S . -B build -DPAWNDB_ENABLE_STYLE -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/clang.cmake
cmake --build build --target apply-clang-format
cmake -S . -B build -DPAWNDB_ENABLE_DOXYGEN -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/clang.cmake
cmake --build build --target doxygen