30 open-source projects similar to uscilab/cereal, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
Cista is a simple, high-performance, zero-copy C++ serialization & reflection library.
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
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
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
uthash is a macro-based data structure library for C that provides header-only implementations of hash tables, linked lists, stacks, and dynamic arrays. It allows for key-based lookups and organized data storage without requiring external library linking. The library uses intrusive linking to embed metadata directly into user-defined structures via macros. This approach enables in-place structure extension, allowing hash and link fields to be added to existing structs without separate memory allocations for container nodes. The project also covers specialized memory and data stream managemen
tinyobjloader is a header-only C++ library for parsing Wavefront OBJ and MTL files. It extracts 3D mesh geometry, shape topology, and material definitions into memory, supporting the conversion of formatted text strings or files into vertex, normal, and texture coordinate data structures. The library provides a triangulation pipeline that converts complex, multi-vertex polygons into triangles using 2D projection and ear-clipping algorithms. It supports physically based rendering setups by extracting PBR material parameters and texture maps from material library files. To handle large dataset
yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing pipeline, from reading YAML content into a traversable node tree to writing in-memory data structures back as YAML text. The library represents parsed YAML as a mutable tree of typed nodes, supporting scalars, sequences, maps, and aliases. It uses a recursive-descent parser to build this node tree, and a stream-based emitter to generate YAML output incrementally. Template-based type conversion enables compile-time serialization between YAML nodes and C++ types, including support for c
Protocol Buffers implementation in C
Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d
Newtonsoft.Json is a data processing utility for the .NET ecosystem designed to facilitate the transformation and exchange of information. It functions as a serialization library and object mapping framework, enabling the conversion of complex application objects into formatted JSON strings and the reconstruction of structured objects from raw JSON data. The library distinguishes itself through a flexible architecture that supports both strongly-typed class mapping and a dynamic object model for schema-less data manipulation. It employs reflection-based metadata mapping to automate property a
Simple Binary Encoding (SBE) - High Performance Message Codec
MessagePack implementation for C and C++ / msgpack.orgC/C++
CapnProto is a zero-copy serialization framework and remote procedure call system. It serves as a C++ communication library providing a schema-based data interchange format that eliminates the need to encode or decode data before reading it from memory. The system enables high-performance data serialization and low-latency network communication. It supports cross-language data exchange by using a defined schema to ensure consistent binary representation across different platforms. The framework provides tools for implementing remote procedure calls, allowing functions to be invoked on a remo
Nanopb is a lightweight C implementation of Protocol Buffers designed for resource-constrained systems and microcontrollers. It functions as both an embedded serialization library for encoding and decoding structured data and a code generator that transforms definition files into compact C source and header files. The project is distinguished by its focus on static memory allocation, using fixed maximum sizes for strings and arrays to avoid dynamic memory allocation and heap fragmentation. It employs a callback-based streaming mechanism to process messages or fields that exceed available phys
This project is a Swift standard library extension and cross-platform system library. It provides a collection of core utility types and fundamental data structures that extend the base Swift language, acting as an OS-independent interface layer for handling system operations such as networking and file systems. The project features a specialized C++ interoperability layer that maps C++ types and functions into compatible Swift interfaces for cross-language communication. This includes a bridging mechanism to handle standard library types and foreign containers, allowing C++ types to be mappe
This project is a high-performance JSON parsing library for Rust that utilizes hardware-accelerated instructions to process complex data structures. It functions as a type-safe serialization tool, mapping raw JSON strings into native language objects while providing the flexibility to handle dynamic document structures when schemas are unknown or frequently changing. The library distinguishes itself through its use of SIMD-accelerated parsing and bitmask-based structural identification, which allow it to scan and tokenize documents by processing multiple bytes simultaneously. It employs runti
This project is an object persistence library and data mapper abstraction layer. It provides a set of shared interfaces and base classes designed to decouple domain logic from specific object mapper implementations, separating the business domain layer from the underlying data access implementation. The library includes a database schema management and migration tool for defining, versioning, and deploying incremental updates to database structures across different environments. It also functions as a document database mapper, translating object states into structured document formats for sto
MessagePack-CSharp is a high-performance binary serialization library for .NET applications that converts object graphs into the MessagePack format. It functions as a C# data serialization toolkit and a polymorphic binary encoder capable of handling abstract classes and interfaces using union keys to identify concrete derived types. The library provides a binary format transcoder to transform binary data into human-readable JSON for debugging. It supports ahead-of-time formatter generation to avoid runtime overhead and implements LZ4 binary compression to reduce the size of serialized data.
cxxopts is a header-only C++ command line parser used to define required options, default values, and positional arguments for console applications. It functions as a lightweight utility for parsing command line arguments into typed values using short and long flags and automatically generating formatted help messages and documentation. The library provides capabilities for argument specification, allowing the definition of option descriptions, types, and boolean flags. It supports multi-value option collection into containers, default value management for omitted options, and the mapping of
SwiftyUserDefaults is a type-safe Swift interface for reading and writing user preferences using the NSUserDefaults storage system. It provides a statically typed preference store that utilizes generic types and default values to prevent runtime type mismatches in application settings. The library includes a custom type serializer to convert complex objects and arrays into compatible storage formats and an observer that uses key-value observing to trigger logic when preference values change. It also features an app group preference manager that utilizes suite names to exchange user preference
This project is a Chinese translation of a comprehensive guide to the Go programming language. It serves as a localized educational resource and technical manual designed to provide guidance on language syntax, design, and software development. The resource covers a broad range of Go language education, including the implementation of programming patterns and system design. It includes translated lessons and examples that focus on core language features such as concurrency and the use of interfaces. The content spans various capability areas, including language fundamentals, data modeling, r
Jetzig is a full-stack web framework built in the Zig programming language. It provides a structured environment for developing web applications and programmatic APIs by mapping incoming HTTP traffic directly to files on the filesystem. The framework distinguishes itself through a compile-time approach to template rendering, which ensures type safety and performance during the build phase. It manages application state and cross-cutting concerns through a middleware-based interception system and encrypted, session-based cookie storage. The platform includes integrated support for persistent d
Redux Persist is a state management utility designed to maintain application data across sessions by synchronizing state with local storage. It functions as a middleware-based engine that automatically saves and restores application state, ensuring that user sessions remain intact after page refreshes or application restarts. The library distinguishes itself through granular control over the persistence lifecycle and data structure. It supports recursive state tree partitioning, allowing developers to apply distinct storage configurations and filtering rules to specific branches of the applic
msgspec is a high-performance data modeling, serialization, and schema validation toolkit for Python. It serves as a type-safe serialization framework that integrates schema enforcement and data parsing into a single pass, functioning as both a data serialization library and a schema validation system based on standard Python type annotations. The project distinguishes itself through high-performance structural primitives, including compilation-based routine generation and zero-copy buffer parsing. It optimizes memory usage via garbage collection-aware layouts and reduces processing overhead
MessagePack is a binary object serialization library and a cross-platform data exchange format. It serves as a binary alternative to JSON, converting structured data into a space-efficient binary representation for network transmission and storage. The system provides a standardized format for swapping complex data types across different programming languages and architectures. It allows for the definition of custom data type encoding by pairing application-specific information with specialized serialization markers. The library handles the encoding and decoding of diverse data types, includ
redux-persist is a state persistence library for Redux that saves and restores store state to a storage engine to maintain data across sessions. It functions as a state rehydration tool and serialization middleware, loading previously saved application state back into the Redux store during the initialization process. The library includes a schema migration utility to transform persisted state data from older versions to newer schemas, ensuring compatibility after application updates. It also provides state serialization transformations to modify state objects before they are written to or re
matplotlib-cpp is a header-only C++ library and wrapper that enables the creation of 2D and 3D visualizations by calling Matplotlib functions directly from C++ code. It serves as a plotting interface for generating line plots, bar graphs, and surface charts using a Python-based backend. The library is designed as a lightweight integration that provides plotting capabilities without requiring a complex build process or compiled binaries. It covers a range of visualization capabilities, including multi-dimensional data rendering, vector field plotting, and the arrangement of multiple subplots.
MusicBrainz Picard is a metadata tagger and audio tag editor that identifies and tags audio files using the MusicBrainz community music database. It functions as a plugin-extensible tagging framework and a scriptable file organizer capable of reading and writing tags across various audio formats including MP3, FLAC, and WAV. The project is distinguished by its acoustic fingerprint identifier, which matches unknown music files to known recordings via sonic fingerprints. It features a custom scripting language for automating metadata transformations and organizing files into structured folder h
This project is a web-based user interface for interacting with large language models, featuring streaming responses and persistent conversation history. It functions as an orchestration gateway that directs user prompts to specific language models and acts as a Model Context Protocol client to execute external tools and incorporate live data into conversations. The application includes a routing layer that analyzes input signals and tool requirements to dynamically direct messages to the most appropriate specialized model. It also provides customization settings for brand identity, allowing