A high-performance, header-only C++11 serialization library designed as a faster alternative to boost.serialization.
YAS is a header-only C++ serialization library that enables fast and efficient conversion of C++ objects to and from binary, text, and JSON formats. It solves the problem of slow serialization performance in existing libraries like boost.serialization, offering a lightweight and portable alternative for C++ developers.
C++ developers working on performance-critical applications that require efficient object serialization for data storage, network communication, or inter-process communication.
Developers choose YAS for its benchmark-proven speed advantages over boost.serialization, its header-only design for easy integration, and its comprehensive support for modern C++ types without external dependencies.
Yet Another Serialization
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
YAS is a header-only library, making it easy to integrate without separate compilation or linking steps, as emphasized in the README.
It was created to address performance limitations of boost.serialization and is benchmarked as significantly faster, with links to performance tests provided.
Supports binary, text, and JSON archives, allowing flexibility for different use cases like storage or network communication.
Binary archives are endian-independent, ensuring data portability across different architectures without manual conversion.
Serializes a wide range of std, Boost, and Qt types, reducing the need for custom serialization code for common containers.
The JSON archive format does not fully comply with JSON standards, which could cause issues in systems requiring strict validation or interoperability.
Lacks object versioning and support for formats like protobuf or MessagePack, as acknowledged in the TODO list, limiting its use in evolving systems.
Relies on macros like YAS_OBJECT for serialization, which some developers find less intuitive and more prone to errors compared to template-based approaches.
While examples are provided, comprehensive documentation is limited, potentially increasing the learning curve for complex use cases.
YAS is an open-source alternative to the following products: