Man if you think protobuf is fast, just wait until you try C pod structs with type-length headers.
They are literally infinitely faster to encode/decode than protobuf.
They even have the same obnoxious append-only extensibility of protobuf if that’s what really gets your jimmies firing.