{"repo":"PragmaTwice/protopuf","free":true,"listed":false,"github":"https://github.com/PragmaTwice/protopuf","clone":"git clone https://github.com/PragmaTwice/protopuf.git","description":"Protocol Puffers: A little, highly templated, and protobuf-compatible serialization/deserialization header-only library written in C++20","language":"C++","stars":207,"topics":["protobuf","cpp","serialization","template","library","metaprogramming","header-only"],"license":"Apache-2.0","category":"saas-starters-boilerplates","readme_excerpt":"Protocol Puffers A little, highly templated, and protobuf-compatible serialization/deserialization library written in C++20 :closed book: Documentation Requirements - a compiler and a standard library implementation with C++20 support - GCC 11 or above, or - Clang 12 or above, or - MSVC 14.29 (Visual Studio 2019 Version 16.9) or above - Apple Clang 17 (Xcode 16.4) or above - CMake 3 - GoogleTest (optional, for unit tests) - vcpkg (optional, vcpkg install protopuf to install) Features - Data structures are described using type in C++ instead of DSLs like the Protocol Buffer Language ( .proto ) - Fully compatible with encoding of the Protocol Buffers, capable of mutual serialization/deserialization - Extensive compile-time operations aimed to improving run-time performance An Example For the following data structure described using .proto : We can use protopuf to describe it as C++ types: Subsequently, both serialization and deserialization become so easy to do: More examples can be found in our test cases (test/message.cpp). Supported Field Types Category Supported Types -------- ------------------ Varint int32, int64, uint32, uint64, sint32, sint64, bool, enum 64-bit fixed64, sfixed64, double Length-delimited string, bytes, embedded messages, packed repeated fields 32-bit fixed32, sfixed32, float Known issues - There is a known bug in Visual Studio 2019 Version 16.8 related to template parameter lists of lambda expressions, which can produce a wrong compilation error while co","default_branch":null,"files":null,"tree":[],"storefront":"/r/PragmaTwice","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/PragmaTwice/protopuf/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}