\begin{hcarentry}{binary}
\label{binary}
\report{Lennart Kolmodin}
\status{active}
\participants{Duncan Coutts, Don Stewart, Binary Strike Team}
\makeheader

The Binary Strike Team is pleased to announce yet a release of a new,
pure, efficient binary serialisation library.

The `binary' package provides efficient serialisation of Haskell values
to and from lazy ByteStrings. ByteStrings constructed this way may then
be written to disk, written to the network, or further processed (e.g.
stored in memory directly, or compressed in memory with zlib or bzlib).

The binary library has been heavily tuned for performance, particularly for
writing speed. Throughput of up to 160M/s has been achieved in practice, and
in general speed is on par or better than NewBinary, with the advantage of a
pure interface. Efforts are underway to improve performance still further.
Plans are also taking shape for a parser combinator library on top of
binary, for bit parsing and foreign structure parsing (e.g. network
protocols).

Data.Derive~\cref{derive} has support for automatically generating Binary
instances, allowing to read and write your data structures with little fuzz.

Binary was developed by a team of 8 during the Haskell Hackathon in Oxford
2007, and since then has about 15 people contributed code and many more
given feedback and cheerleading on \verb|#haskell|.

The package is cabalized and available through Hackage~\cref{hackagedb}.
% to editors: ref. to cabal?

\FurtherReading
\begin{compactitem}
\item Homepage

  \url{http://code.haskell.org/binary/}
\item Hackage

  \url{http://hackage.haskell.org/cgi-bin/hackage-scripts/package/binary}
\item Development version

  \texttt{darcs get --partial}

  \url{http://code.haskell.org/binary}
\end{compactitem}
\end{hcarentry}
