Streams 0.1.7
Sponsored Links
Streams 0.1.7 Ranking & Summary
File size:
0.23 MB
Platform:
Any Platform
License:
BSD License
Price:
Downloads:
1065
Date added:
2006-11-28
Publisher:
Bulat Ziganshin
Streams 0.1.7 description
Streams is an I/O library designed to eventually replace the current I/O facilities based on using Handles. The main advantage is its strong modular design using typeclasses. It consists of small independent modules, each implementing one type of stream (file, memory buffer, pipe, etc.) or one part of common stream functionality (buffering, char encoding, locking, etc.).
3rd-party librarie can easily add new stream types and new common functionality. Other benefits of the new library include support for streams functioning in any monad, Hugs and GHC compatibility, high speed, and an easy migration path from the existing I/O library. It is heavily based on the HVIO module written by John Goerzen.
Simple Streams
The key concept of the lib is the Stream class, whose interface mimics familiar interface for Handles, just with "h" replaced with "v" in function names:
class (Monad m) => Stream m h where
vPutStrLn :: h -> String -> m ()
vGetContents :: h -> m String
vIsEOF :: h -> m Bool
vClose :: h -> m ()
....................
This means that you already know how to use any stream! The Stream interface currently has 8 implementations: a Handle itself, raw files, pipes, memory buffers and string buffers. Future plans include support for memory-mapped files, sockets, circular memory buffers for interprocess communication and UArray-based streams.
By themselves, these Stream implementations are rather simple.
Basically, to implement new Stream type, its enough to provide vPutBuf/vGetBuf operations, or even vGetChar/vPutChar. The latter way, although inefficient, allows us to implement streams that can work in any monad. StringReader and StringBuffer streams use this to provide string-based Stream class implementations both for IO and ST monads. Yes, you can use the full power of Stream operations inside the ST monad!
3rd-party librarie can easily add new stream types and new common functionality. Other benefits of the new library include support for streams functioning in any monad, Hugs and GHC compatibility, high speed, and an easy migration path from the existing I/O library. It is heavily based on the HVIO module written by John Goerzen.
Simple Streams
The key concept of the lib is the Stream class, whose interface mimics familiar interface for Handles, just with "h" replaced with "v" in function names:
class (Monad m) => Stream m h where
vPutStrLn :: h -> String -> m ()
vGetContents :: h -> m String
vIsEOF :: h -> m Bool
vClose :: h -> m ()
....................
This means that you already know how to use any stream! The Stream interface currently has 8 implementations: a Handle itself, raw files, pipes, memory buffers and string buffers. Future plans include support for memory-mapped files, sockets, circular memory buffers for interprocess communication and UArray-based streams.
By themselves, these Stream implementations are rather simple.
Basically, to implement new Stream type, its enough to provide vPutBuf/vGetBuf operations, or even vGetChar/vPutChar. The latter way, although inefficient, allows us to implement streams that can work in any monad. StringReader and StringBuffer streams use this to provide string-based Stream class implementations both for IO and ST monads. Yes, you can use the full power of Stream operations inside the ST monad!
Streams 0.1.7 Screenshot
Streams 0.1.7 Keywords
Streams 0.1.7
Handles
I/O library
Designed To
streams
stream
I/O
library
h
m
Streams 0.1.7
Libraries
Programming
Bookmark Streams 0.1.7
Streams 0.1.7 Copyright
WareSeeker periodically updates pricing and software information of Streams 0.1.7 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of Streams 0.1.7 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Featured Software
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com
Related Information
streams of whiskey
stream energy
streamside
stream of consciousness
streamate
streamside at vail
agilent i o library
streamyx
live football streams
streams in the desert devotional
streaming
streaming movies
streams in the desert
streamsurfers
multiple streams of income
united streaming
streamline
robert allen mulitple streams of income
Version History
Related Software
GSAMBAD is a frontend for the Samba file and print server. Free Download
GEO project is a C++ geometric template class library. Free Download
Stream-2-Stream allows anyone with a normal broadband connection to set up their own internet television or radio station, free. Free Download
Mediastreamer is library written in C that allows you to create and run audio and video streams. Free Download
CurlyAnkles is a versatile library written in C on GNU/Linux. Free Download
Work Order is a web-based ticket processing system available from Network-Technologies is new software written in PHP. Free Download
m2psd is a fast MPEG-2 Program Stream demultiplexer. Free Download
AmarokPidgin is a plugin for Amarok that updates your Pidgin status message with what you are currently listening too. Free Download
Latest Software
Popular Software
Favourite Software