Ponder
C++ reflection library with Lua binding, and JSON and XML serialisation.
Currents status: 3.2-alpha. API is unstable as features added/changed. The project is written primarily in C++, distributed under the Other license, first published in 2015. Key topics include: c-plus-plus, camp, cpp, cpp-library, introspection.
Ponder
Currents status: 3.2-alpha. API is unstable as features added/changed.
New: Version 3
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.
About
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:
- API to expose C++ objects.
- Runtime API to create objects, call functions, and read and modify properties.
- Automatic Lua binding generation.
Links
Build
Compilers supported. Requires C++17.
- MSVC 2017+
- Xcode 8+
- GCC 7+
- Clang 3.9+
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):
bashgit clone https://github.com/billyquith/ponder.git cd ponder mkdir build && cd build cmake -G "Unix Makefiles" .. make
Package Managers
Windows vcpkg:
vcpkg install ponder
History
Ponder is a fork of CAMP, which has been retired by the original authors. CAMP relies
on Boost, and is pre-C++11. In Ponder, the Boost dependency has been removed, and instead,
C++11 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.
Contributors
Showing top 12 contributors by commit count.
