Not C, but my C# version (protobuf-net) works along these lines.
Values (and single-instance sub-messages) in the proto binary are
typically pushed into property-accessor methods (which can do whatever
they want) - and repeated sub-messages will get pushed through a
collection's "Add" method (which can also do whatever they want).

Further, it has full support for lazy streaming (both input and
output) of a sequence of items from a stream (via IEnumerable<T>
in .NET). Most of this flexibility comes from the fact that the engine
works with the programmers (mutable) type system, rather than creating
its own (immutable) type system - so the developer can do pretty much
anything they want with incoming data.

You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to