I am looking for an IDL-like (or whatever) translator which turns a DOM- or JSON-like document definition into classes which
- are accessible from both C++ and Python, within the same application
- expose document properties as ints, floats, strings, binary blobs and compounds: array, string dict (both nestable) (basically the JSON type feature set)
- allow changes to be tracked to refresh views of an editing UI
- provide a change history to enable undo/redo operations
- can be serialized to and from JSON (can also be some kind of binary format)
- allow to keep large data chunks on disk, with parts only loaded on demand
- provide non-blocking thread-safe read/write access to exchange data with realtime threads
- allow multiple editors in different processes (or even on different machines) to view and modify the document
The thing that comes closest so far is the Blender 2.5 DNA/RNA system, but it's not available as a separate library, and badly documented.
I'm most of all trying to make sure that such a lib does not exist yet, so I know my time is not wasted when I start to design and write such a thing. It's supposed to provide a great foundation to write editing UI components.