Hey folks, today, I'm open sourcing *protobluff*, which (from my knowledge) is the first Protocol Buffers binding that allows reads and writes on encoded messages - no decoding necessary. In certain cases this is really beneficial in terms of performance, especially on large messages from which only a few fields are needed. protobluff also allows zero-copy updates if the length of the message doesn't change during an update (e.g. for fixed-size fields like floats or doubles). This allows in-place reads and updates with absolutely *zero allocations*. It makes heavy use of stack allocations and avoids dynamic allocations wherever possible. It's also really convenient in terms of memory management, as *protobluff* does all the heavy lifting for you. No need to track allocations in order to free them later. Give it a try:
https://github.com/squidfunk/protobluff *protobluff* is under active and heavy development - there are a few unsupported features and proto3 compatibility to come, but the main stuff is implemented. There are also a few thousand lines of tests which cover 100% of the source code. In the next weeks I will add extensive documentation, but for now I refer to the examples in the README and the extensive unit tests and this thread. Feel free to post your questions. My company VOOLA (http://voola.de) makes heavy use of *protobluff*, having it in production for around 1,5 years now. We're delivering blazing-fast search on realtime metrics and data for the German derivatives markets, and protobluff helps us implementing it in realtime. Feel free to add protobluff to the list of third-party add-ons on Github. Any feedback is appreciated. Best regards Martin -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
