ANN: version 2.0.0 of protocol-buffers, protocol-buffers-descriptor, hprotoc

haskell at list.mightyreason.com haskell at list.mightyreason.com
Tue May 10 16:49:19 CEST 2011


A new major version of the Haskell implementation of Google's protocol buffers
is done.

The new code is in the usual three packages at
http://hackage.haskell.org/package/protocol-buffers
http://hackage.haskell.org/package/protocol-buffers-descriptor
http://hackage.haskell.org/package/hprotoc

The darcs repository is still at
http://code.haskell.org/protocol-buffers/

This is the first release where performance was tested and improved:
specifically parsing messages from the wire protocol.  The new library now
defaults to using strict fields for generated messages. This vastly improves the
memory usage when getting messages from the binary format.  The old lazy fields
can still be generated by hprotoc with a new command line option.

On "OS X" with 64-bit ghc the C++ loading is 0.5 seconds and Haskell is 1.6
seconds (128 MB memory usage).  This is down from 8.3 seconds (1597 MB memory
usage).

A related change in version 2.0.0 is that 'mergeEmpty' no longer exists.  With
strict messages and required fields this would have been a dangerous value to
keep.  If you used this, then please use 'defaultValue' instead.

The Haskell code has been compiled against Google's version 2.4.0a proto files.
 But the Haskell code is only compatible up to Google's version 2.3.0, and in
particular the new default message syntax is not yet supported in the 'hprotoc'
parser.

-- 
Chris



More information about the Libraries mailing list