GitPedia

Ponder

C++ reflection library with Lua binding, and JSON and XML serialisation.

From billyquith·Updated May 2, 2026·View on GitHub·
·Archived

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.

Latest release: 3.0.0V3
October 3, 2018View Changelog →

Ponder

Linux & OSX: Build Status -
Windows: Build status

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.

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):

bash
git 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.

View all contributors on GitHub →

This article is auto-generated from billyquith/ponder via the GitHub API.Last fetched: 6/17/2026