From CppCon 2014: Thomas Rodgers "Implementing Wire Protocols with Boost Fusion" · · CppCon
“Protocol Buffers, Thrift and similar IDL/code-generator approaches are great when you control both ends of the communication, but there are many important use cases where this is not true — third‑party systems, financial exchanges, latency‑sensitive scenarios and embedded devices.”
On , Thomas Rodgers, Executive VP and Chief Strategy & Business Development Officer at McKesson Corporation, spoke about serialization during CppCon 2014: Thomas Rodgers "Implementing Wire Protocols with Boost Fusion" on CppCon.
Thomas Rodgers, Executive Vice President and Chief Strategy & Business Development Officer at McKesson, previously worked at DRW Trading, where he developed techniques for implementing wire protocol handlers in C++. In a 2014 CppCon presentation, Rodgers described challenges with binary protocols used by financial exchanges and third-party systems, noting that standard serialization formats like Protocol Buffers or Thrift are not always suitable when one does not control both ends of communication. He advocated for using Boost.Fusion to enable memberwise iteration and type dispatch on C++ structs, allowing generic reading and writing of binary data without the error-prone manual member-by-member conversion required by traditional packed-struct overlays. Rodgers stated that his team used these techniques in exchange market-data feed handlers, achieving processing times in the low hundreds of nanoseconds per tick. He also discussed the need for custom handling of signed integral types over the wire and described how some exchanges define prices using a signed exponent and 32-bit unsigned mantissa to avoid rounding errors. Rodgers referenced the C++ study group SG7, which was exploring compile-time reflection as a potential long-term solution for such protocol-handling challenges.