babelc is a tool for using C++ declarations as

  • an IDL for D-Bus
  • a schema for JSON

It can also generate standard text stream input and output operators for user defined data types and containers thereof.

The babelc tool itself is GPLv2 but the code generated by it is either totally license free or MIT licensed (in the case of the JSON DOM parser).

For a quick overview this presentation can be useful.

The repository for babelc can be found here and and the interested reader may also want to peek into the User’s Guide.