Skip to content
Commits on Source (3)
Name: io-streams
Version: 1.5.0.1
License: BSD3
License-file: LICENSE
Category: Data, Network, IO-Streams
Build-type: Simple
Maintainer: Gregory Collins <greg@gregorycollins.net>
Cabal-version: >= 1.10
Synopsis: Simple, composable, and easy-to-use stream I/O
Tested-With: GHC==7.8.4, GHC==7.8.3, GHC==7.6.3, GHC==7.4.2
Bug-Reports: https://github.com/snapframework/io-streams/issues
Description:
/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.
Extra-Source-Files: CONTRIBUTORS README.md changelog.md
Flag NoInteractiveTests
Description: Do not run interactive tests
Default: False
------------------------------------------------------------------------------
Library
hs-source-dirs: src
Default-language: Haskell2010
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields
-fno-warn-unused-do-bind
ghc-prof-options: -auto-all
Exposed-modules: System.IO.Streams,
System.IO.Streams.Attoparsec,
System.IO.Streams.Attoparsec.ByteString,
System.IO.Streams.Attoparsec.Text,
System.IO.Streams.Builder,
System.IO.Streams.ByteString,
System.IO.Streams.Combinators,
System.IO.Streams.Concurrent,
System.IO.Streams.Core,
System.IO.Streams.Debug,
System.IO.Streams.Handle,
System.IO.Streams.File,
System.IO.Streams.List,
System.IO.Streams.Network,
System.IO.Streams.Process,
System.IO.Streams.Text,
System.IO.Streams.Vector,
System.IO.Streams.Zlib,
System.IO.Streams.Internal,
System.IO.Streams.Tutorial
Other-modules: System.IO.Streams.Internal.Attoparsec,
System.IO.Streams.Internal.Network,
System.IO.Streams.Internal.Search
Build-depends: base >= 4 && <5,
attoparsec >= 0.10 && <0.14,
bytestring >= 0.9 && <0.11,
bytestring-builder >= 0.10 && <0.11,
network >= 2.3 && <2.7,
primitive >= 0.2 && <0.7,
process >= 1.1 && <1.7,
text >= 0.10 && <1.3,
time >= 1.2 && <1.9,
transformers >= 0.2 && <0.6,
vector >= 0.7 && <0.13,
zlib-bindings >= 0.1 && <0.2
if impl(ghc >= 7.2)
other-extensions: Trustworthy
other-extensions:
BangPatterns,
CPP,
DeriveDataTypeable,
FlexibleContexts,
FlexibleInstances,
GeneralizedNewtypeDeriving,
MultiParamTypeClasses,
OverloadedStrings,
RankNTypes,
TypeSynonymInstances
------------------------------------------------------------------------------
Test-suite testsuite
Type: exitcode-stdio-1.0
hs-source-dirs: src test
Main-is: TestSuite.hs
Default-language: Haskell2010
Other-modules: System.IO.Streams.Tests.Attoparsec.ByteString,
System.IO.Streams.Tests.Attoparsec.Text,
System.IO.Streams.Tests.Builder,
System.IO.Streams.Tests.ByteString,
System.IO.Streams.Tests.Combinators,
System.IO.Streams.Tests.Common,
System.IO.Streams.Tests.Concurrent,
System.IO.Streams.Tests.Debug,
System.IO.Streams.Tests.File,
System.IO.Streams.Tests.Handle,
System.IO.Streams.Tests.Internal,
System.IO.Streams.Tests.List,
System.IO.Streams.Tests.Network,
System.IO.Streams.Tests.Process,
System.IO.Streams.Tests.Text,
System.IO.Streams.Tests.Vector,
System.IO.Streams.Tests.Zlib,
System.IO.Streams,
System.IO.Streams.Attoparsec.ByteString,
System.IO.Streams.Attoparsec.Text,
System.IO.Streams.Builder,
System.IO.Streams.ByteString,
System.IO.Streams.Combinators,
System.IO.Streams.Concurrent,
System.IO.Streams.Core,
System.IO.Streams.Debug,
System.IO.Streams.Handle,
System.IO.Streams.File,
System.IO.Streams.List,
System.IO.Streams.Network,
System.IO.Streams.Process,
System.IO.Streams.Text,
System.IO.Streams.Vector,
System.IO.Streams.Zlib,
System.IO.Streams.Internal,
System.IO.Streams.Internal.Attoparsec,
System.IO.Streams.Internal.Network,
System.IO.Streams.Internal.Search
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -threaded
-fno-warn-unused-do-bind
ghc-prof-options: -auto-all
if !os(windows) && !flag(NoInteractiveTests)
cpp-options: -DENABLE_PROCESS_TESTS
Build-depends: base >= 4 && <5,
attoparsec >= 0.10 && <0.14,
bytestring >= 0.9 && <0.11,
bytestring-builder >= 0.10 && <0.11,
deepseq >= 1.2 && <1.5,
directory >= 1.1 && <2,
filepath >= 1.2 && <2,
mtl >= 2 && <3,
network >= 2.3 && <2.7,
primitive >= 0.2 && <0.7,
process >= 1.1 && <1.7,
text >= 0.10 && <1.3,
time >= 1.2 && <1.9,
transformers >= 0.2 && <0.6,
vector >= 0.7 && <0.13,
zlib-bindings >= 0.1 && <0.2,
HUnit >= 1.2 && <2,
QuickCheck >= 2.3.0.2 && <3,
test-framework >= 0.6 && <0.9,
test-framework-hunit >= 0.2.7 && <0.4,
test-framework-quickcheck2 >= 0.2.12.1 && <0.4,
zlib >= 0.5 && <0.7
if impl(ghc >= 7.2)
other-extensions: Trustworthy
other-extensions:
BangPatterns,
CPP,
DeriveDataTypeable,
FlexibleInstances,
GeneralizedNewtypeDeriving,
MultiParamTypeClasses,
OverloadedStrings,
RankNTypes
source-repository head
type: git
location: https://github.com/snapframework/io-streams.git
name: snap-core
version: 1.0.3.2
synopsis: Snap: A Haskell Web Framework (core interfaces and types)
description:
Snap is a simple and fast web development framework and server written in
Haskell. For more information or to download the latest version, you can
visit the Snap project website at <http://snapframework.com/>.
.
This library contains the core definitions and types for the Snap framework,
including:
.
1. Primitive types and functions for HTTP (requests, responses, cookies,
post/query parameters, etc)
.
2. A monad for programming web handlers called \"Snap\", which allows:
.
* Stateful access to the HTTP request and response objects
.
* Monadic failure (i.e. MonadPlus/Alternative instances) for declining
to handle requests and chaining handlers together
.
* Early termination of the computation if you know early what you want
to return and want to prevent further monadic processing
.
/Quick start/: The 'Snap' monad and HTTP definitions are in "Snap.Core".
license: BSD3
license-file: LICENSE
author: Snap Framework Authors (see CONTRIBUTORS)
maintainer: snap@snapframework.com
build-type: Simple
cabal-version: >= 1.10
homepage: http://snapframework.com/
bug-reports: https://github.com/snapframework/snap-core/issues
category: Web, Snap, IO-Streams
Tested-With: GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3,
GHC == 8.0.1, GHC == 8.2.1, GHC == 8.4.1
extra-source-files:
test/TestSuite.hs,
cbits/timefuncs.c,
CONTRIBUTORS,
extra/haddock.css,
extra/hscolour.css,
extra/logo.gif,
haddock.sh,
LICENSE,
README.md,
README.SNAP.md,
Setup.hs,
runTestsAndCoverage.sh,
test/data/fileServe/foo.bin,
test/data/fileServe/foo.bin.bin.bin,
test/data/fileServe/foo.html,
test/data/fileServe/foo.txt,
test/data/fileServe/mydir1/index.txt,
test/data/fileServe/mydir2/dir/foo.txt,
test/data/fileServe/mydir2/foo.txt,
test/data/fileServe/mydir3/altindex.html,
test/Snap/Core/Tests.hs,
test/Snap/Internal/Http/Types/Tests.hs,
test/Snap/Internal/Parsing/Tests.hs,
test/Snap/Internal/Routing/Tests.hs,
test/Snap/Test/Common.hs,
test/Snap/Types/Headers/Tests.hs,
test/Snap/Util/FileServe/Tests.hs,
test/Snap/Util/FileUploads/Tests.hs,
test/Snap/Util/GZip/Tests.hs,
test/Snap/Util/Proxy/Tests.hs
Flag portable
Description: Compile in cross-platform mode. No platform-specific code or
optimizations such as C routines will be used.
Default: False
Flag debug
Description: Enable debug logging code. With this flag, Snap will
test the DEBUG environment variable to decide whether to do
logging, and this introduces a tiny amount of overhead
(a call into a function pointer) because the calls to 'debug'
cannot be inlined.
Default: False
Flag network-uri
Description: Get Network.URI from the network-uri package
Default: True
Library
Default-language: Haskell2010
hs-source-dirs: src
if !flag(debug)
cpp-options: -DNODEBUG
if flag(portable) || os(windows)
cpp-options: -DPORTABLE
build-depends: time-locale-compat == 0.1.*
else
c-sources: cbits/timefuncs.c
include-dirs: cbits
build-depends: old-locale >= 1 && <2
exposed-modules:
Snap.Core,
Snap.Internal.Core,
Snap.Internal.Debug,
Snap.Internal.Http.Types,
Snap.Internal.Parsing,
Snap.Test,
Snap.Types.Headers,
Snap.Util.CORS,
Snap.Util.FileServe,
Snap.Util.FileUploads,
Snap.Util.GZip,
Snap.Util.Proxy
other-modules:
Snap.Internal.Instances,
Snap.Internal.Routing,
Snap.Internal.Test.RequestBuilder,
Snap.Internal.Test.Assertions,
Snap.Internal.Util.FileServe,
Snap.Internal.Util.FileUploads
build-depends:
HUnit >= 1.2 && < 2,
attoparsec >= 0.12 && < 0.14,
base >= 4 && < 5,
bytestring >= 0.9 && < 0.11,
bytestring-builder >= 0.10.4 && < 0.11,
case-insensitive >= 1.1 && < 1.3,
containers >= 0.3 && < 1.0,
directory >= 1 && < 2,
filepath >= 1.1 && < 2.0,
lifted-base >= 0.1 && < 0.3,
io-streams >= 1.3 && < 1.6,
hashable >= 1.2.0.6 && < 1.3,
monad-control >= 1.0 && < 1.1,
mtl >= 2.0 && < 2.3,
random >= 1 && < 2,
readable >= 0.1 && < 0.4,
regex-posix >= 0.95 && < 1,
text >= 0.11 && < 1.3,
time >= 1.0 && < 1.9,
transformers >= 0.3 && < 0.6,
transformers-base >= 0.4 && < 0.5,
unix-compat >= 0.3 && < 0.6,
unordered-containers >= 0.1.4.3 && < 0.3,
vector >= 0.6 && < 0.13
other-extensions:
BangPatterns,
CPP,
DeriveDataTypeable,
EmptyDataDecls,
ExistentialQuantification,
FlexibleContexts,
FlexibleInstances,
ForeignFunctionInterface,
GeneralizedNewtypeDeriving,
MultiParamTypeClasses,
OverloadedStrings,
OverloadedStrings,
PackageImports,
Rank2Types,
ScopedTypeVariables,
TypeSynonymInstances
if impl(ghc >= 6.12.0)
ghc-options: -Wall -fwarn-tabs -fno-warn-unused-do-bind
else
ghc-options: -Wall -fwarn-tabs
-- See https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#base-4.9.0.0
if impl(ghc >= 8.0)
ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
else
build-depends: fail == 4.9.*, semigroups == 0.18.*
if flag(network-uri)
build-depends: network-uri >= 2.6 && < 2.7,
network >= 2.6 && < 2.7
else
build-depends: network-uri >= 2.5 && < 2.6,
network >= 2.3 && < 2.6
Test-suite testsuite
hs-source-dirs: src test
Type: exitcode-stdio-1.0
Main-is: TestSuite.hs
Default-language: Haskell2010
if flag(portable) || os(windows)
cpp-options: -DPORTABLE
build-depends: time-locale-compat == 0.1.*
else
c-sources: cbits/timefuncs.c
include-dirs: cbits
build-depends: old-locale >= 1 && <2
other-modules:
Snap.Core,
Snap.Internal.Debug,
Snap.Internal.Http.Types,
Snap.Internal.Parsing,
Snap.Test,
Snap.Types.Headers,
Snap.Util.CORS,
Snap.Util.FileServe,
Snap.Util.FileUploads,
Snap.Util.GZip,
Snap.Util.Proxy,
Snap.Internal.Core,
Snap.Internal.Instances,
Snap.Internal.Routing,
Snap.Internal.Test.RequestBuilder,
Snap.Internal.Test.Assertions,
Snap.Internal.Util.FileServe,
Snap.Internal.Util.FileUploads,
--------------------------------------------------------------------------
Snap.Core.Tests,
Snap.Internal.Http.Types.Tests,
Snap.Internal.Parsing.Tests,
Snap.Internal.Routing.Tests,
Snap.Test.Common,
Snap.Test.Tests,
Snap.Types.Headers.Tests,
Snap.Util.CORS.Tests,
Snap.Util.FileServe.Tests,
Snap.Util.FileUploads.Tests,
Snap.Util.GZip.Tests,
Snap.Util.Proxy.Tests
build-depends:
HUnit,
attoparsec,
base,
bytestring,
bytestring-builder,
case-insensitive,
containers,
directory,
filepath,
hashable,
lifted-base,
io-streams,
monad-control,
mtl,
random,
readable,
regex-posix,
text,
time,
transformers,
transformers-base,
unix-compat,
unordered-containers,
vector,
--------------------------------------------------------------------------
QuickCheck >= 2.3.0.2 && <3,
deepseq >= 1.1 && < 1.5,
parallel >= 3 && <4,
test-framework >= 0.8.0.3 && <0.9,
test-framework-hunit >= 0.2.7 && <0.4,
test-framework-quickcheck2 >= 0.2.12.1 && <0.4,
zlib >= 0.5 && <0.7
if flag(network-uri)
build-depends: network-uri >= 2.6 && < 2.7,
network >= 2.6 && < 2.7
else
build-depends: network-uri >= 2.5 && < 2.6,
network >= 2.3 && < 2.6
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -threaded
-fno-warn-unused-do-bind
-- See https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#base-4.9.0.0
if impl(ghc >= 8.0)
ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
else
build-depends: fail == 4.9.*, semigroups == 0.18.*
other-extensions:
BangPatterns,
CPP,
DeriveDataTypeable,
EmptyDataDecls,
ExistentialQuantification,
FlexibleContexts,
FlexibleInstances,
ForeignFunctionInterface,
GeneralizedNewtypeDeriving,
MagicHash,
MultiParamTypeClasses,
OverloadedStrings,
Rank2Types,
ScopedTypeVariables,
StandaloneDeriving,
TypeFamilies,
TypeSynonymInstances
source-repository head
type: git
location: git://github.com/snapframework/snap-core.git
......@@ -618,7 +618,7 @@ parseargs 0.2.0.8
parsec 3.1.13.0 notest
parser-combinators 0.4.0
parsers 0.12.8
patat 0.6.1.0 binary ignore # BROKEN: LTS 11: newer ansi-terminal
patat 0.7.0.0 binary
path 0.6.1
path-io 1.3.3
path-pieces 0.2.1
......