A header-only C++ binary serialization library optimized for speed, minimal size, and real-time networking.
Bitsery is a header-only C++ library for binary serialization, enabling efficient conversion of C++ objects into compact binary formats and back. It is specifically optimized for real-time data delivery scenarios, such as game networking, where speed and minimal data size are critical. The library requires no external dependencies or code generation, working directly with user-defined types.
C++ developers working on performance-sensitive applications like games, real-time networking systems, or embedded software where efficient binary data serialization is required.
Developers choose Bitsery for its exceptional performance in benchmarks, minimal serialized data size, and flexibility through extensions without sacrificing ease of use. Its header-only nature and lack of dependencies simplify integration, while features like configurable error checking and endianness support make it robust for cross-platform development.
Your binary serialization library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks in the README show Bitsery produces smaller serialized data and faster serialization/deserialization times compared to alternatives like Boost and Protocol Buffers, making it ideal for real-time applications.
As a header-only library with no external dependencies, integrating Bitsery is as simple as including a single header file, reducing project complexity and setup time.
The extension system allows fine-grained control over bit-level serialization, version compatibility, and polymorphism, adhering to a 'don't pay for what you don't use' philosophy for modular customization.
Compile-time enforcement of cross-platform compatibility ensures consistent binary representation without metadata overhead, crucial for networking and gaming applications.
The README admits that documentation is in progress with most parts empty, which can make learning and troubleshooting challenging for new users and slow adoption.
Unlike libraries with code generation or automatic serialization, Bitsery requires developers to write serialization functions for each data type, increasing development time and potential for errors.
Compared to established alternatives like Protocol Buffers, Bitsery has a smaller community and fewer integrations, which might affect long-term support, tool availability, and ease of debugging.