C++ reflection library with Lua binding, and JSON and XML serialisation.
Currents status: 3.2-alpha. API is unstable as features added/changed.
V1 replaced Boost with C++11. V2 added Lua bindings. V3 refactored to remove some warts,
ease future development, and re-add serialisation. API is evolving.
Ponder is a C++ multi-purpose reflection library. It provides an abstraction for most
of the high-level concepts of C++: classes, enumerations, functions, properties.
C++1x supplies better support for compile-time reflection. Runtime reflection involves
baking compile-time reflection into the executable so this can be used at runtime. Ponder
presents a simple API for baking your objects so that they can be used at runtime. The baking
can also, optionally, userdata and support for Lua scripting.
Features:
Compilers supported. Requires C++17.
Ponder uses CMake to generate project files which are then used to build the project (Build
docs). E.g. Use make
to build Ponder (but you can use any build system CMake supports):
git clone https://github.com/billyquith/ponder.git
cd ponder
mkdir build && cd build
cmake -G "Unix Makefiles" ..
make
Windows vcpkg:
vcpkg install ponder
Ponder is a fork of CAMP, which has been retired by the original authors. CAMP relies
on Boost, and is pre-C11. In Ponder, the Boost dependency has been removed, and instead,
C11 features are used. CAMP was developed by Technogerma Systems France and then by Tegesoft.
See CHANGELOG.md and release notes for more details on Ponder changes.