[Haskell-cafe] ANNOUNCE: iterIO-0.1 - iteratee-based IO with pipe operators

Eugene Kirpichov ekirpichov at gmail.com
Fri May 6 06:30:05 CEST 2011


Sounds just terrific! Thanks!



06.05.2011, в 8:15, David Mazieres <dm-list-haskell-cafe at scs.stanford.edu> написал(а):

> Hi, everyone.  I'm pleased to announce the release of a new iteratee
> implementation, iterIO:
> 
>    http://hackage.haskell.org/package/iterIO
> 
> IterIO is an attempt to make iteratees easier to use through an
> interface based on pipeline stages reminiscent of Unix command
> pipelines.  Particularly if you've looked at iteratees before and been
> intimidated, please have a look at iterIO to see if it makes them more
> accessible.
> 
> Some aspects of iterIO that should simplify learning and using
> iteratees are:
> 
>   * Every aspect of the library is thoroughly document in haddock
>     including numerous examples of use.
> 
>   * Enumerators are easy to build out of iteratees.
> 
>   * There is no difference between enumerators and "enumeratees"
>     (i.e., inner pipeline stages).  The former is just a
>     type-restricted version of the latter.
> 
>   * Parsing combinators provide detailed error reporting and support
>     LL(*) rather than LL(1) parsing, leading to fewer non-intuitive
>     parsing failures.  A couple of tricks avoid consuming excessive
>     memory for backtracking.
> 
>   * Super-fast LL(1) parsing is also available through seamless
>     integration with attoparsec.
> 
>   * A universal exception mechanism works across invocations of mtl
>     monad transformers, thereby unifying error handling.
> 
>   * All pipe operators have uniform semantics, eliminating corner
>     cases.  In particular, if the writing end of a pipe fails, the
>     reading end always gets EOF, allowing it to clean up resources.
> 
>   * One can catch exceptions thrown by any contiguous subset of
>     stages in a pipeline.  Moreover, enumerator exception handlers
>     can resume downstream stages that haven't failed.
> 
>   * The package is full of useful iteratees and enumerators,
>     including basic file and socket processing, parsec-like
>     combinators, string search, zlib/gzip compression, SSL, HTTP, and
>     "loopback" enumerator/iteratee pairs for testing a protocol
>     implementation against itself.
> 
> Please enjoy.  I'd love to hear feedback.
> 
> David
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list