[Haskell] ANN: blaze-builder-0.2.1.0 and blaze-builder-enumerator-0.2.0.0

Simon Meier simon.meier at inf.ethz.ch
Sun Dec 12 01:20:38 CET 2010


Dear Haskellers,

I'm pleased to announce the release of blaze-builder-0.2.1.0 and
blaze-builder-enumerator-0.2.0.0.

The blaze-builder package provides a builder type that allows for the
serialization of Haskell values in a form that can be output efficiently
over the network, to a file, or just into a lazy bytestring. The
blaze-builder-enumerator package allows for the incremental execution of
builders and passing-on the produced bytestrings to another iteratee.

Note that both packages are work-in-progress. Currently, their development
is driven by the objective to use the builder monoid as the core
representation of byte sequences in the output path of the snap framework
HTTP server. Once the packages become more stable, I will work towards
separating their functionality more precisely and integrating them smoothly
with existing packages like, for example, bytestring, binary, and
enumerator.

Note also that currently compiling blaze-builder with the LLVM backend
results in a library that segfaults! I hope to find a more minimal test case
than the current testsuite of blaze-builder to make an appropriate bug entry
for GHC.

blaze-builder changes since 0.2.0.0

* new functionality
- Blaze.ByteString.Builder.HTTP: provides a builder transformer for doing
in-buffer chunked HTTP encoding of an arbitrary other builder.
- Blaze.ByteString.Builder.Char8: provides functions to serialize the lower
8-bits of characters similiar to what 'Data.ByteString.Char8' provides for
bytestrings.

* bugfixes:
- use ' instead of ' for HTML escaping
- compiles with GHC 7.0.1 (http://hackage.haskell.org/trac/ghc/ticket/4498 was
a problem)

* internal restructuring:
- `BuildStep's support returning a result in `Done`, which enables
to implement a `Put` monad using CPS. Hence, we can now build a full
replacement of the encoding part of the 'binary' package based on
blaze-builder.
- The `Write` abstraction has been restructured to allow for a more
efficient Monoid instance and better insulation of user code from
abstraction changes.

best regards,
Simon Meier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell/attachments/20101212/daf0f4c3/attachment.htm>


More information about the Haskell mailing list