cpp-serializers
cpp-serializers copied to clipboard
Benchmark comparing various data serialization libraries (thrift, protobuf etc.) for C++
When compiling this project as shown in the README, it gives ``` [ 17%] Completed 'capnproto' [ 17%] Built target capnproto Scanning dependencies of target flatbuffers [ 18%] Creating directories...
See: - https://github.com/ludocode/schemaless-benchmarks - https://github.com/fraillt/cpp_serializers_benchmark - https://github.com/felixguendling/cpp-serialization-benchmark - https://github.com/alecthomas/go_serialization_benchmarks - https://github.com/smallnest/gosercomp Also: - https://github.com/18F/data-act-pilot/issues/161 - https://leopard.in.ua/2013/10/13/binary-serialization-formats - https://serde.rs/#data-formats - https://luminousmen.com/post/big-data-file-formats - https://towardsdatascience.com/the-best-format-to-save-pandas-data Here is a list - Binn - BSON...
For Google's protobuf, when a significant portion of negative numbers is expected, use sint64 instead of int64 in the proto definition will make it run much faster and give a...
I searched for a simple cmake command such as `DISABLE_THRIFT` or something similar to compile and benchmark a subset of serializers, but couldn't find any. Is there any simple way...
That means that the updated versions are now: * thrift 0.13.0 * protobuf 3.11.2 * boost 1.72.0 * msgpack 3.1.1 * cereal 1.3.1 * avro 1.9.1 * capnproto 0.7.0 *...
Edits to the CMakeLists are so that the tools will never report an error because of a not-existing directory.
When running CMake to initialize the build folder, the following error occured: ``` -- Looking for include file inttypes.h CMake Error at /usr/share/cmake-3.10/Modules/CheckIncludeFiles.cmake:69 (try_compile): Unknown extension ".c" for file /home/pkok/cpp-serializers/build/CMakeFiles/CMakeTmp/CheckIncludeFiles.c...
Could you include https://github.com/felixguendling/cista ? I would be very interested in how it performs against the others...
Results (excluding thrift which doesn't compile on my distribution): ``` $ ./benchmark 300000 performing 300000 iterations protobuf: version = 3001000 protobuf: size = 16116 bytes protobuf: time = 5878 milliseconds...
function ** avro_serialization_test** is not at all [efficient](https://github.com/thekvs/cpp-serializers/blob/master/benchmark.cpp#L391). As can be seen, for every encode / decode new resources are initialised, not an optimal technique. Also the the default **avro::InputStream**...