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

Chris Kuklewicz haskell at
Thu May 12 11:51:38 CEST 2011

Ok, I was crap at editing the hprotoc.cabal file.

I have uploaded version 2.0.2 of all three to fix this.  As a small bonus some
decoding should be more efficient than in 2.0.0 since I "unrolled" decoding the
7-bit integer format.


On 10/05/2011 15:49, haskell at wrote:
> 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
> The darcs repository is still at
> 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.

More information about the Libraries mailing list