Implementing Wire Protocols with Boost Fusion
summary
Claims a reusable serializer that maps nonstandard binary exchange messages into modern C++ types using Boost Fusion and Boost.MPL rather than packed C overlays, demonstrates concrete reader/writer code using ASIO const/mutable buffers, type dispatch with enable_if/SFINAE, handling of nested variable‑length fields, optional bitmasks, and lazy string_view semantics, provides GitHub source and slides, and reports production‑scale use parsing market data with nanosecond‑range performance on real feeds.
AI-written summary · about
chapters (22)
- 0:00Start
- 3:28Reflection?
- 4:47A container of types and values
- 5:40Asio buffers
- 6:54Member-wise visitation
- 8:03From packed struct to Fusion struct
- 10:59Fixing up byte ordering
- 13:30Enumerated Values
- 18:16Sequences of types
- 18:43Maps of types
- 19:35Multiple variable length fields
- 20:03Framing
- 23:21User defined types
- 26:25Nested Fusion structs
- 26:55Adapted Types
- 29:03Optional Fields
- 36:16Lazy/View Types
- 36:42String view
- 37:49Lazy types
- 39:37Generic lazy
- 41:42A non-trivial protocol
- 43:11Getting field names
related talks
38mScaling Financial Transaction using 0MQ and JSON
58mImplementing a Modern C++ MQTT Client for Embedded Devices
01h 16mApplied C++20 Coroutines
01h 01mAsynchronous IO with Boost.Asio
39mWire 3 : Tackling gRPC with Kotlin
51mHigh Bandwidth Data & Low-latency Java
21mDeep Dive: Envoy
07mLightning Talk: Dynamic Modules: A New Era of High-Performance Envoy Extensions
