Google Protocol Buffers integration is ready.

Christian Migowski chrismfwrd at gmail.com
Wed Jul 22 14:52:14 EDT 2009


I, personally, am not convinced that this would be an improvement.
Reading four bytes and then being able to read the message should
perform much better then reading a byte, do some (albeit fast binary)
checks, potentially read some more bytes and then calculate the
message length from it.
I know it is apples and oranges, but with the nowadays much abused
HTTP protocol you haven't even read the "protocol id header" with 4
bytes...


christian!


On Wed, Jul 22, 2009 at 7:09 PM, Tomasz Blachowicz<tblachowicz at gmail.com> wrote:
>
>
> Trustin Lee wrote:
>>
>> I have finished the implementation of Google Protocol Buffers codec for
>> Netty.
>>
>> Google Protocol Buffers (protobuf) are a way of encoding structured data
>> in
>> an efficient yet extensible format. Google uses Protocol Buffers for
>> almost
>> all of its internal RPC protocols and file formats.  With protobuf, you
>> can
>> define a binary protocol very quickly and efficiently.  For more
>> information, please see here: http://code.google.com/p/protobuf/
>>
>> With the ProtobufEncoder and ProtobufDecoder that Netty provides, you can
>> now write a network application with a very efficient binary encoding even
>> more quickly than ever.  It just takes little time to implement a codec
>> with
>> protobuf.
>>
>> To help your understanding, I have written a time client / server example.
>> The time client sends a list of time zones, and then the time server
>> responds with the local time for each time zone.  Please brwose the
>> following directory:
>>
>>    -
>>
>> http://fisheye.jboss.org/browse/Netty/trunk/src/main/java/org/jboss/netty/example/localtime
>>
>> Please note that LocalTimeProtocol.java has been generated from
>> LocalTimeProtocol.proto by protobuf compiler.
>>
>> Please feel free to send me a feed back once you review the source code.
>> I'd like to know what could be improved to support protobuf better and to
>> help you implement an efficient binary protocol more quickly than ever.
>>
>
> Here is an idea for improvement of Google Protocol Buffers (protobuf)
> support in Netty. Currently each frame is prepended with fixed size four
> byte integer value that is a length of the message. Why not to use cool
> protobuf varint
> (http://code.google.com/apis/protocolbuffers/docs/encoding.html#varints) for
> that purpose? By doing this for small messages one could save a few bits of
> bandwidth. For instance, messages smaller that 128 bytes can be "framed"
> only by one byte representing the size.
>
> I've already implmented FrameDecoded and FieldPrepender that I could share
> with you through JIRA. Please, let me know what you think and if you'd
> considered such feature for Netty.
>
> Cheers,
> Tom
>
> --
> View this message in context: http://n2.nabble.com/Google-Protocol-Buffers-integration-is-ready.-tp2122078p3304575.html
> Sent from the Netty Developer Group mailing list archive at Nabble.com.
> _______________________________________________
> netty-dev mailing list
> netty-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/netty-dev
>



More information about the netty-dev mailing list