Hello I have developed a new I/O library that IMHO is so sharp that it can eventually replace the current I/O facilities based on using Handles. The main advantage of the new library is its strong modular design using typeclasses. The library consists of small independent modules, each implementing one type of stream (file, memory buffer, pipe) or one part of common stream functionality (buffering, Char encoding, locking). 3rd-party libs 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. You can find further information about the library at the page http://haskell.org/haskellwiki/Library/Streams and download it as http://freearc.narod.ru/Streams.tar.gz I thank Jean Philippe Bernardy, Jared Updike and Henk Jan Van Tuyl, who are corrected library documentation ps: the library also includes two more layers - binary I/O and serialization - on top of Streams. now i'm hardly working on documenting these modules -- Best regards, Bulat mailto:bulatz@HotPOP.com
On 2006-02-06, Bulat Ziganshin <bulatz@HotPOP.com> wrote:
Hello
I have developed a new I/O library that IMHO is so sharp that it can eventually replace the current I/O facilities based on using Handles. The main advantage of the new library is its strong modular design using typeclasses. The library consists of small independent modules, each implementing one type of stream (file, memory buffer, pipe) or one part of common stream functionality (buffering, Char encoding, locking). 3rd-party libs 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.
You can find further information about the library at the page http://haskell.org/haskellwiki/Library/Streams and download it as http://freearc.narod.ru/Streams.tar.gz
I thank Jean Philippe Bernardy, Jared Updike and Henk Jan Van Tuyl, who are corrected library documentation
ps: the library also includes two more layers - binary I/O and serialization - on top of Streams. now i'm hardly working on documenting these modules
Disclaimer: I haven't looked at the code yet. Having binary I/O on top seems backwards. Clearly text should be implemented in terms of binary, rather than the reverse. -- Aaron Denney -><-
Hello Aaron, Monday, February 06, 2006, 9:46:56 PM, you wrote:
ps: the library also includes two more layers - binary I/O and serialization - on top of Streams. now i'm hardly working on documenting these modules
AD> Disclaimer: I haven't looked at the code yet. AD> Having binary I/O on top seems backwards. Clearly text should be AD> implemented in terms of binary, rather than the reverse. the hierarchy is (i wrote the class names in parentheses): buffer i/o (BlockStream) byte i/o (ByteStream) bit and word i/o (BinaryStream) value i/o (Binary) text i/o is sitting on top of byte i/o and included in the same ByteStream class (in order to reduce implementation complexity) so, i can say that there is just two branches, both based on the vGetByte/vPutByte -- Best regards, Bulat mailto:bulatz@HotPOP.com
Bulat Ziganshin writes:
You can find further information about the library at the page http://haskell.org/haskellwiki/Library/Streams and download it as http://freearc.narod.ru/Streams.tar.gz
Is there any chance of running this code on a non-Windows system? I tried to compile the example programs, but failed for lack of a System.Win32 module. I might be able to port the code, but I figured it would be wise to ask first. Peter
participants (3)
-
Aaron Denney -
Bulat Ziganshin -
Peter Simons