Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
proton-c-0.26.0
-
None
-
None
Description
C++ API support for streaming large messages in chunks (too large to fit entire message in memory)
The C link-level API does support streaming messages in chunks, but the C message encoder/decoder and the proton::message type do. Provide an alternative (or extended) C++ message type with a byte-stream API to send/receive the body data in chunks, without every requiring the entire body to be held in memory.
Use cases:
- Only the message body need be streamed. Properties are encoded/decode as a unit before sending/receiving any of the body. Most client/endpoint applications would work this way.
- The entire message, headers, properties and all, need to be streamed, with support for partial decoding of an incoming message and efficient pass thru (incoming to outgoing without decode/re-encode). Only advanced intermediaries are likely to need this (e.g. this is what dispatch router does.)