Save and restore program state to a file so users can pick up where they left off.
Send structured data between services or over a network by serializing to binary or JSON.
Exchange data between different programs that share the same C++ data structures.
Quickly add save/load support to an existing C++ project with minimal setup.
Copy the include folder into your project. No compilation or linking required. Works with any C++11-compatible compiler on Linux, macOS, or Windows.
cereal is a C++ library that converts data structures to a storable or transmittable format and then reconstructs them back to the original. This process is called serialization, and it is useful any time you need to save program state to a file, send data over a network, or exchange information between different programs. cereal supports three output formats: compact binary, XML, and JSON. The library works with C++11, a version of the language from 2011 that became widely supported across compilers. It is header-only, which means you integrate it by copying a folder of header files into your project rather than compiling a separate library and linking to it. There are no external dependencies, so adding it to an existing codebase involves minimal setup. To use it, you add a serialize method to your data types that lists which fields should be saved and loaded. cereal reads that method and handles the rest automatically. For cases where saving and loading require different logic, you can define separate save and load methods instead of a single combined one. The README includes a short working code example showing how to serialize a struct containing integers, a float, and a nested map. The library is built and tested on Linux, macOS, and Windows. It is released under the BSD 3-Clause license, which permits use in commercial and open-source projects with few restrictions. Full documentation is available at the project's website at USCiLab.github.io/cereal, and there is a mailing list for support and discussion.
← uscilab on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.