Iteratee I/O
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article is a stub. You can help by expanding it.
Iteratee I/O is a way to avoid the problems that can occur with lazy I/O.
Discussions elsewhere on this wiki include:
Essays by Oleg:
- Oleg's writings: Incremental multi-level input processing with left-fold enumerator: predictable, high-performance, safe, and elegant
- An implementation by Oleg, iteratees on Chars and Strings
- A general library by Oleg
Other discussions:
- Yesod Book: Enumerator Package
- Lazy IO considered harmful; way to go, Left-fold enumerator!
- A Darcs repository of an alternative implementation
Uses of Iteratee I/O:
- Snap : The Snap web framework
- yaml: Low-level binding to the libyaml C library]
- usb 0.4: Communicate with USB devices
- sstable: SSTables in Haskell
- WAI: a Web Application Interface for haskell web frameworks (used by Yesod).
Packages:
- iterIO (note, that this will not compile on Windows, as it depends on the package unix)
- enumerator ANNOUNCE: enumerator, an alternative iteratee package (this package does not use any extensions, so it will work with most Haskell compilers)
- attoparsec-iteratee: An adapter to convert attoparsec Parsers into blazing-fast Iteratees
- iteratee: Iteratee-based I/O
- iteratee-parsec: Package allowing parsec parser initeratee
- liboleg: An evolving collection of Oleg Kiselyov's Haskell modules (depends on the package unix and will therefore not compile on Windows systems)
- See also the enumerator category on Hackage