- Seeking is allowed within any monad; the specific RBIO monad is
neither required nor provided.
- Data buffers may be of arbitrary types as specified by the
StreamChunk type class. This allows for user-provided buffer types
(e.g. arrays, vectors, etc.). Instances are provided for lists and
ByteStrings. This, in conjunction with seeking, allows for efficient
processing of binary data in addition to text.
- Cross-platform support. Currently this is slightly less efficient
than the Posix operations, but should run on any system targeted by a
Haskell compiler.
Although basic I/O specific enumerators are provided, this library
should allow seamless interoperation with user-provided iteratees and
enumerators. I hope that this flexibility will encourage a much wider
adoption of enumerator-based IO in the Haskell community.
This library is experimental, and the API is subject to change if it
will seem advantageous. Patches are welcome: the darcs repo is at
http://inmachina.net/~jwlato/haskell/iteratee . Discussion and
comments are also always welcome.
I would like to acknowledge several individuals for their
contributions and suggestions:
Oleg Kiselyov
Paulo Tanimoto
Johan Tibell
Cheers,
John Lato
_______________________________________________
Haskell mailing list
Has...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell
Here's the Hackage link for the lazy among us:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/iteratee-0.1.0
Cheers,
Johan
Nice job, John! Please keep posting on your blog, so we can see your
findings with audio processing and examples of iteratee.
If Windows users are interested, I just cabal-installed it on Windows
XP and the examples seem to run.
Paulo
Would love to see performance/handle-scalability numbers, too!
Thanks very much for this; it looks great. Incidentally, one of the
items planned for iteratee is some restructuring of types, in
particular the StreamChunk class. I would very much like to make
further steps in this direction.
John