$ show USCiLab/cereal
Cereal is a header-only C++11 serialization library that enables conversion of complex data structures to and from binary, XML, and JSON formats. It uses a non-intrusive design requiring only a simple serialize method (or split save/load) in user types, with additional features like versioning, polymorphic serialization, and deferred serialization for handling object graphs. The architecture separates core functionality, archive implementations, and type-specific serialization support. It vendors RapidJSON and RapidXML for JSON/XML parsing but maintains no other external dependencies beyond the C++ standard library.
The LLM identified 2 files worth highlighting for reuse:
Defines the NameValuePair template and make_nvp function for associating names with values in serialized data (particularly useful for text archives like XML and JSON). This pattern is simple, self-contained, and reusable in any serialization system requiring labeled data.
Provides a thread-safe, lazily-initialized singleton pattern via the static_object class. This utility is self-contained, depends only on <mutex> and <memory>, and can be extracted for use in other projects requiring safe global state initialization.