Summary
/Overview/ The io-streams library contains simple and easy-to-use primitives for I/O using streams. Most users will want to import the top-level convenience module "System.IO.Streams", which re-exports most of the library: @ import System.IO.Streams (InputStream, OutputStream) import qualified System.IO.Streams as Streams @ For first-time users, @io-streams@ comes with an included tutorial, which can be found in the "System.IO.Streams.Tutorial" module. /Features/ The @io-streams@ user API has two basic types: @InputStream a@ and @OutputStream a@, and three fundamental I/O primitives: @ \-\- read an item from an input stream Streams.read :: InputStream a -> IO (Maybe a) \-\- push an item back to an input stream Streams.unRead :: a -> InputStream a -> IO () \-\- write to an output stream Streams.write :: Maybe a -> OutputStream a -> IO () @ Streams can be transformed by composition and hooked together with provided combinators: @ ghci> Streams.fromList [1,2,3::Int] >>= Streams.map (*10) >>= Streams.toList [10,20,30] @ Stream composition leaves the original stream accessible: @ ghci> input \<- Streams.fromByteString \"long string\" ghci> wrapped \<- Streams.takeBytes 4 input ghci> Streams.read wrapped Just \"long\" ghci> Streams.read wrapped Nothing ghci> Streams.read input Just \" string\" @ Simple types and operations in the IO monad mean straightforward and simple exception handling and resource cleanup using Haskell standard library facilities like 'Control.Exception.bracket'. @io-streams@ comes with: * functions to use files, handles, concurrent channels, sockets, lists, vectors, and more as streams. * a variety of combinators for wrapping and transforming streams, including compression and decompression using zlib, controlling precisely how many bytes are read from or written to a stream, buffering output using bytestring builders, folds, maps, filters, zips, etc. * support for parsing from streams using @attoparsec@. * support for spawning processes and communicating with them using streams.
Versions
v1.5.2.0 :: 0/1.5.2.0 :: gentoo
- Modified
- License
- BSD
- Keywords
- ~amd64 ~x86
- USE flags
- doc hscolour network profile test zlib
USE flags
General
- doc
- Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
- hscolour
- Include coloured haskell sources to generated documentation (dev-haskell/hscolour)
- network
- Include network support
- profile
- Add support for software performance analysis (will likely vary from ebuild to ebuild)
- test
- Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
- zlib
- Include zlib support
Dependencies
dev-haskell / attoparsec : Fast combinator parsing for bytestrings and text
dev-haskell / bytestring-builder : The new bytestring builder, packaged outside of GHC
dev-haskell / cabal : A framework for packaging Haskell software
dev-haskell / hscolour : Colourise Haskell code
dev-haskell / hunit : A unit testing framework for Haskell
dev-haskell / mtl : Monad classes, using functional dependencies
dev-haskell / network : Low-level networking interface
dev-haskell / primitive : Primitive memory-related operations
dev-haskell / quickcheck : Automatic testing of Haskell programs
dev-haskell / test-framework : Framework for running and organising tests, with HUnit and QuickCheck support
dev-haskell / test-framework-hunit : HUnit support for the test-framework package
dev-haskell / test-framework-quickcheck2 : QuickCheck2 support for the test-framework package
dev-haskell / text : An efficient packed Unicode text type
dev-haskell / vector : Efficient Arrays
dev-haskell / zlib : Compression and decompression in the gzip and zlib formats
dev-haskell / zlib-bindings : Low-level bindings to the zlib package. (deprecated)
Runtime Dependencies
dev-haskell / attoparsec : Fast combinator parsing for bytestrings and text
dev-haskell / bytestring-builder : The new bytestring builder, packaged outside of GHC
dev-haskell / network : Low-level networking interface
dev-haskell / primitive : Primitive memory-related operations
dev-haskell / text : An efficient packed Unicode text type
dev-haskell / vector : Efficient Arrays
dev-haskell / zlib-bindings : Low-level bindings to the zlib package. (deprecated)
Depending packages
dev-haskell / http-streams : An HTTP client using io-streams
dev-haskell / io-streams-haproxy : HAProxy protocol 1.5 support for io-streams
dev-haskell / openssl-streams : OpenSSL network support for io-streams
dev-haskell / snap-core : Snap: A Haskell Web Framework (core interfaces and types)
dev-haskell / snap-server : A fast, iteratee-based, epoll-enabled web server for the Snap Framework
Change logs
- Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
dev-haskell/io-streams: drop old
Package-Manager: Portage-3.0.8, Repoman-3.0.2 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jack Todaro · gentoo
dev-haskell/io-streams: drop 1.5.1.0-r1
Package-Manager: Portage-3.0.5, Repoman-3.0.1 Signed-off-by: Jack Todaro <solpeth@posteo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Jack Todaro · gentoo
dev-haskell/io-streams: bump up to 1.5.2.0
Package-Manager: Portage-3.0.5, Repoman-3.0.1 Signed-off-by: Jack Todaro <solpeth@posteo.org> Closes: https://github.com/gentoo/gentoo/pull/17461 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jack Todaro · gentoo
dev-haskell/io-streams: bump up to 1.5.1.0
Bug: https://bugs.gentoo.org/735152 Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Jack Todaro <solpeth@posteo.org> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Jakov Smolic · gentoo
dev-haskell/io-streams: update homepage link
Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr> Signed-off-by: Aaron Bauman <bman@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
*/*: destabilize dev-lang/ghc for all arches
dev-lang/ghc is a fast-moving target without much of stable API across major GHC releases. This makes stabilization process a fragile process. The change moves all haskell revdeps to pure ~arch. There are not many outside dev-haskell/*: - app-emulation/ganeti - app-text/pandoc - dev-util/bustle - dev-util/shellcheck - dev-vcs/darcs - x11-wm/xmonad/xmonad Existing stable haskell users are recommended to keyword used packages and all of dev-haskell/* to ease upgrades. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
*/*: Inline mirror://hackage and update URIs
This change inlines mirror://hackage in all ebuilds, and updates URIs to the modern form (old URIs redirect to that). The change has been made using the following command: find -name '*.ebuild' -exec sed -r -i \ -e 's@mirror://hackage/@https://hackage.haskell.org/@g' \ -e 's@https://hackage.haskell.org/packages/archive/([^/]*)/([^/]*)/@https://hackage.haskell.org/package/\1-\2/@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{PV}@${P}@g' \ -e '/hackage\.haskell\.org/s@\$\{MY_PN}-\$\{PV}@${MY_P}@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{MY_PV}@${MY_P}@g' \ {} + Signed-off-by: Michał Górny <mgorny@gentoo.org> - Sergei Trofimovich · gentoo
dev-haskell/io-streams: stable 1.3.6.0 for x86/amd64, bug #631138
Package-Manager: Portage-2.3.10, Repoman-2.3.3 RepoMan-Options: --include-arches="amd64 x86" - Robin H. Johnson · gentoo
Drop $Id$ per council decision in bug #611234.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> - Sergei Trofimovich · gentoo
dev-haskell/io-streams: new package, a depend of snap-core-1
Simple, composable, and easy-to-use stream I/O Package-Manager: Portage-2.3.3, Repoman-2.3.1