awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
USCiLab avatar

USCiLab/cereal

0
View on GitHub↗
4,676 stars·841 forks·C++·BSD-3-Clause·19 views

Cereal

Cereal is a C++ serialization library and object persistence tool used to convert data types and containers into formats for storage or transmission. It is implemented as a header-only library, allowing it to be included directly in source code without the need for a compiled binary.

The library supports multiple data representations, including binary, XML, and JSON. It provides the ability to define custom archives, enabling the development of specialized output formats to control how data is encoded and stored.

The system handles the conversion of complex objects through template-based serialization and recursive tree traversal. These capabilities support application state persistence and binary data exchange between processes.

Features

  • Data Type Serialization - Provides comprehensive logic for encoding and decoding complex C++ data types and containers into binary, XML, or JSON.
  • C++ Data Serialization - Converts complex C++ objects and containers into formats like JSON or XML for storage or network transmission.
  • Template-Based Type Serializers - Uses C++ template metaprogramming to automatically generate serialization logic for diverse data types at compile time.
  • Object Persistence Tools - Provides a mechanism for saving and restoring the state of C++ objects to and from external archives.
  • C# Serialization Libraries - A header-only C++ library for converting data types and containers into binary, XML, or JSON formats.
  • Header-Only Libraries - Provides a header-only implementation to allow the compiler to inline serialization code for maximum performance.
  • Binary Data Formats - Supports compact binary serialization formats for efficient communication between different C++ processes.
  • Custom Archive Definitions - Enables the development of specialized output formats to control exactly how data is encoded and stored.
  • Persistent Application State - Facilitates saving the current state of a program to a file for exact restoration after a restart.
  • Serialization Policies - Allows switching between binary, JSON, and XML representations using a policy-driven architecture.
  • Custom Archive Development - Allows the creation of specialized output formats to control exactly how data is encoded and stored.
  • Type-Based Dispatching - Employs type-based dispatching to select the appropriate serialization method for primitives, containers, and custom objects.
  • Format Abstraction Interfaces - Implements standardized interfaces that decouple data traversal logic from specific storage formats like JSON or XML.
  • Generic Tree Traversers - Processes nested data structures by recursively visiting each member through a consistent serialization function.
  • Serialization - C++11 serialization library.
  • Serialization and Formats - Header-only C++11 serialization library.
  • Serialization and Parsing - C++11 library for object serialization.
  • Serialization Libraries - C++11 serialization library.
  • Developer Tools and Utilities - Modern C++ serialization library.
  • Reflection and Serialization - C++11 serialization library.

Star history

Star history chart for uscilab/cerealStar history chart for uscilab/cereal

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Cereal

These projects share indexed features with Cereal. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • felixguendling/cistafelixguendling avatar

    felixguendling/cista

    2,225View on GitHub↗

    Cista is a simple, high-performance, zero-copy C++ serialization & reflection library.

    C++benchmarkcppcpp17
    View on GitHub↗2,225
  • nlohmann/jsonnlohmann avatar

    nlohmann/json

    49,944View on GitHub↗

    This library is a header-only C++ framework designed for the serialization, parsing, and manipulation of structured data. It provides a recursive variant data model that represents arbitrary structures as native types, allowing developers to navigate, modify, and patch hierarchical data using standard pointer paths and declarative update patterns. The project distinguishes itself through its template-based architecture, which enables type-safe data structures and custom type mapping at compile time. It offers a unified interface for binary format abstraction, supporting multiple compact repre

    C++bsoncborheader-only
    View on GitHub↗49,944
  • google/flatbuffersgoogle avatar

    google/flatbuffers

    25,558View on GitHub↗

    FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation. The project distinguishes itself through a schema-driven approach that balances high-performance access with long-term data evolution. It utilizes a unique memory layout featuring relative offsets and inline fixed-size structu

    C++cc-plus-plusc-sharp
    View on GitHub↗25,558
  • teamsirenix/odin-serializerTeamSirenix avatar

    TeamSirenix/odin-serializer

    1,884View on GitHub↗

    Odin Serializer is a framework designed for the Unity game engine to convert complex object graphs into persistent binary or JSON formats. It provides a system for saving and loading intricate class structures, including nested generics and polymorphic types, while maintaining the structural integrity of the data. The framework distinguishes itself through its support for ahead-of-time compilation, generating necessary type metadata during the build process to ensure functionality on platforms that restrict runtime reflection. It integrates directly with the Unity engine lifecycle, allowing f

    C#
    View on GitHub↗1,884
Compare all 30 related projects→

Frequently asked questions

What does uscilab/cereal do?

Cereal is a C++ serialization library and object persistence tool used to convert data types and containers into formats for storage or transmission. It is implemented as a header-only library, allowing it to be included directly in source code without the need for a compiled binary.

What are the main features of uscilab/cereal?

The main features of uscilab/cereal are: Data Type Serialization, C++ Data Serialization, Template-Based Type Serializers, Object Persistence Tools, C# Serialization Libraries, Header-Only Libraries, Binary Data Formats, Custom Archive Definitions.

Which projects share features with uscilab/cereal?

Projects with overlapping indexed features include: felixguendling/cista — Cista is a simple, high-performance, zero-copy C++ serialization & reflection library. nlohmann/json — This library is a header-only C++ framework designed for the serialization, parsing, and manipulation of structured… google/flatbuffers — FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require… teamsirenix/odin-serializer — Odin Serializer is a framework designed for the Unity game engine to convert complex object graphs into persistent… troydhanson/uthash — uthash is a macro-based data structure library for C that provides header-only implementations of hash tables, linked… jbeder/yaml-cpp — yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing…