Killing C++ Serialization Overhead & Complexity
summary
Claims a C++20, macro‑less serializer (zpp bits) that matches or beats handwritten code in benchmarks (handwritten ~830 ms, zpp bits ~827–879 ms after tweaks) and produces tiny binaries versus multi‑megabyte libraries (examples: 2 MB vs ~43 KB). Uses memcpy/bitcast, templates, Concepts, constexpr and force inline to get the compiler to emit memcpy instead of per‑byte loops, supports freestanding/embedded operation without exceptions, offers RPC via variants and structured‑binding reflection workarounds, and is implemented and validated against protobuf/flatbuffers benchmarks.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:20What is object serialization
- 1:20Zero overhead
- 4:02I cant afford it
- 6:14What is this talk about
- 12:17How to use this library
- 15:34Assembly
- 18:04Format
- 19:11handwritten code
- 24:09toolbox
- 27:39C Serializer
- 29:22Serialization
- 31:17Overhead Comparison
- 34:00Force Inline
- 36:37Reflection
- 38:44Structures
- 42:40Remote Procedure Call
- 45:04RPC Bindings
- 47:27Protobuf Comparison
- 49:33Summary
- 51:41QA
related talks
56mEverything is serialization
06mImplementing a High Performance Serialization Library
28mGenerating ergonomic C++ APIs using Rustdoc, procedural macros, and Serde
23mFunctional Programming in C++ (Run time vs Compile time types)
45mBetter C++14 reflections
05mUsing type_traits and constexpr to make code more readable/debuggable
01h 05mC++11 in the Wild: Techniques from a Real Codebase
24mGenerating ergonomic C++ APIs using Rustdoc, procedural macros, and Serde
