mirror of
https://github.com/composewell/streamly.git
synced 2024-09-20 07:58:27 +03:00
3d920ef3f8
Also rename asyncly to aparallely and runAsyncT to runAParallelT The name Async is confusing and does not convey the right meaning. The 'A' in AParallelT stands for 'Adaptive' and 'Parallel' indicates that this is a variant of Parallel. Another choice for the name was 'MParallelT' where 'M' stands for 'maybe', it is maybe parallel since it may or may not start parallel threads depending on demand but Adaptive fits better as it adapts to the demand.
301 lines
9.6 KiB
Plaintext
301 lines
9.6 KiB
Plaintext
name: streamly
|
|
version: 0.1.2
|
|
synopsis: Beautiful Streaming, Concurrent and Reactive Composition
|
|
description:
|
|
Streamly is a monad transformer unifying non-determinism
|
|
(<https://hackage.haskell.org/package/list-t list-t>\/<https://hackage.haskell.org/package/logict logict>),
|
|
concurrency (<https://hackage.haskell.org/package/async async>),
|
|
streaming (<https://hackage.haskell.org/package/conduit conduit>\/<https://hackage.haskell.org/package/pipes pipes>),
|
|
and FRP (<https://hackage.haskell.org/package/Yampa Yampa>\/<https://hackage.haskell.org/package/reflex reflex>)
|
|
functionality in a concise and intuitive API.
|
|
High level concurrency makes concurrent applications almost indistinguishable
|
|
from non-concurrent ones. By changing a single combinator you can control
|
|
whether the code runs serially or concurrently. It naturally integrates
|
|
concurrency with streaming rather than adding it as an afterthought.
|
|
Moreover, it interworks with the popular streaming libraries.
|
|
.
|
|
See the README for an overview and the haddock documentation for full
|
|
reference. It is recommended to read the comprehensive tutorial module
|
|
"Streamly.Tutorial" first. Also see "Streamly.Examples" for some working
|
|
examples.
|
|
|
|
homepage: https://github.com/composewell/streamly
|
|
bug-reports: https://github.com/composewell/streamly/issues
|
|
license: BSD3
|
|
license-file: LICENSE
|
|
tested-with: GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1
|
|
author: Harendra Kumar
|
|
maintainer: harendra.kumar@gmail.com
|
|
copyright: 2017 Harendra Kumar
|
|
category: Control, Concurrency, Streaming, Reactivity
|
|
stability: Experimental
|
|
build-type: Simple
|
|
cabal-version: >= 1.10
|
|
|
|
extra-source-files:
|
|
Changelog.md
|
|
README.md
|
|
stack-7.10.yaml
|
|
stack.yaml
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/composewell/streamly
|
|
|
|
flag dev
|
|
description: Build development version
|
|
manual: True
|
|
default: False
|
|
|
|
flag extra-benchmarks
|
|
description: Include comparative benchmarks
|
|
manual: True
|
|
default: False
|
|
|
|
flag examples
|
|
description: Build examples
|
|
manual: True
|
|
default: False
|
|
|
|
flag examples-sdl
|
|
description: Include examples that use SDL dependency
|
|
manual: True
|
|
default: False
|
|
|
|
library
|
|
hs-source-dirs: src
|
|
other-modules: Streamly.Core
|
|
, Streamly.Streams
|
|
|
|
exposed-modules: Streamly.Prelude
|
|
, Streamly.Time
|
|
, Streamly.Tutorial
|
|
, Streamly
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
|
exposed-modules: Streamly.Examples
|
|
, Streamly.Examples.SearchEngineQuery
|
|
, Streamly.Examples.ListDirRecursive
|
|
, Streamly.Examples.MergeSortedStreams
|
|
, Streamly.Examples.AcidRainGame
|
|
|
|
if flag(examples-sdl)
|
|
exposed-modules: Streamly.Examples.CirclingSquare
|
|
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall
|
|
|
|
if flag(dev)
|
|
ghc-options: -Wmissed-specialisations
|
|
-Wall-missed-specialisations
|
|
-fno-ignore-asserts
|
|
if impl(ghc >= 8.0)
|
|
ghc-options: -Wcompat
|
|
-Wunrecognised-warning-flags
|
|
-Widentities
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
-Wnoncanonical-monad-instances
|
|
-Wnoncanonical-monadfail-instances
|
|
if flag(examples-sdl)
|
|
cpp-options: -DEXAMPLES_SDL
|
|
|
|
build-depends: base >= 4.8 && < 5
|
|
, atomic-primops >= 0.8 && < 0.9
|
|
, containers >= 0.5 && < 0.6
|
|
, exceptions >= 0.8 && < 0.11
|
|
, lifted-base >= 0.2 && < 0.3
|
|
, lockfree-queue >= 0.2.3 && < 0.3
|
|
, monad-control >= 1.0 && < 2
|
|
, mtl >= 2.2 && < 3
|
|
, stm >= 2.4.3 && < 2.5
|
|
, transformers >= 0.4 && < 0.6
|
|
, transformers-base >= 0.4 && < 0.5
|
|
|
|
if impl(ghc < 8.0)
|
|
build-depends:
|
|
semigroups >= 0.18 && < 0.19
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
|
build-Depends:
|
|
http-conduit >= 2.2.2 && < 2.4
|
|
, path-io >= 0.1.0 && < 1.4
|
|
, random >= 1.0.0 && < 1.2
|
|
|
|
if flag(examples-sdl)
|
|
build-Depends:
|
|
SDL >= 0.6.5 && < 0.7
|
|
|
|
test-suite test
|
|
type: exitcode-stdio-1.0
|
|
main-is: Main.hs
|
|
hs-source-dirs: test
|
|
ghc-options: -O0 -Wall
|
|
if flag(dev)
|
|
ghc-options: -Wmissed-specialisations
|
|
-Wall-missed-specialisations
|
|
if impl(ghc >= 8.0)
|
|
ghc-options: -Wcompat
|
|
-Wunrecognised-warning-flags
|
|
-Widentities
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
-Wnoncanonical-monad-instances
|
|
-Wnoncanonical-monadfail-instances
|
|
build-depends:
|
|
streamly
|
|
, base >= 4.8 && < 5
|
|
, hspec >= 2.0 && < 3
|
|
, containers >= 0.5 && < 0.6
|
|
if impl(ghc < 8.0)
|
|
build-depends:
|
|
transformers >= 0.4 && < 0.6
|
|
default-language: Haskell2010
|
|
|
|
test-suite properties
|
|
type: exitcode-stdio-1.0
|
|
main-is: Prop.hs
|
|
hs-source-dirs: test
|
|
ghc-options: -O0 -Wall
|
|
if flag(dev)
|
|
ghc-options: -Wmissed-specialisations
|
|
-Wall-missed-specialisations
|
|
if impl(ghc >= 8.0)
|
|
ghc-options: -Wcompat
|
|
-Wunrecognised-warning-flags
|
|
-Widentities
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
-Wnoncanonical-monad-instances
|
|
-Wnoncanonical-monadfail-instances
|
|
build-depends:
|
|
streamly
|
|
, base >= 4.8 && < 5
|
|
, QuickCheck >= 2.8 && < 2.12
|
|
, hspec >= 2.0 && < 3
|
|
default-language: Haskell2010
|
|
|
|
benchmark bench
|
|
type: exitcode-stdio-1.0
|
|
main-is: Main.hs
|
|
hs-source-dirs: benchmark
|
|
ghc-options: -O2 -Wall
|
|
if flag(dev)
|
|
ghc-options: -Wmissed-specialisations
|
|
-Wall-missed-specialisations
|
|
-fno-ignore-asserts
|
|
if impl(ghc >= 8.0)
|
|
ghc-options: -Wcompat
|
|
-Wunrecognised-warning-flags
|
|
-Widentities
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
-Wnoncanonical-monad-instances
|
|
-Wnoncanonical-monadfail-instances
|
|
build-depends:
|
|
streamly
|
|
, atomic-primops >= 0.8 && < 0.9
|
|
, base >= 4.8 && < 5
|
|
, gauge >= 0.2.1 && < 0.3
|
|
, mtl >= 2.2 && < 3
|
|
|
|
if impl(ghc < 8.0)
|
|
build-depends:
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
if flag(extra-benchmarks)
|
|
cpp-options: -DEXTRA_BENCHMARKS
|
|
build-depends:
|
|
list-t >= 0.4 && < 2
|
|
, logict >= 0.6 && < 0.7
|
|
, machines >= 0.5 && < 0.7
|
|
, simple-conduit >= 0.6 && < 0.7
|
|
, transient >= 0.4 && < 0.6
|
|
default-language: Haskell2010
|
|
|
|
benchmark benchOps
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: benchmark
|
|
main-is: Benchmarks.hs
|
|
other-modules: BenchmarkOps
|
|
default-language: Haskell2010
|
|
ghc-options: -O2 -Wall
|
|
if flag(dev)
|
|
ghc-options: -Wmissed-specialisations
|
|
-Wall-missed-specialisations
|
|
-fno-ignore-asserts
|
|
if impl(ghc >= 8.0)
|
|
ghc-options: -Wcompat
|
|
-Wunrecognised-warning-flags
|
|
-Widentities
|
|
-Wincomplete-record-updates
|
|
-Wincomplete-uni-patterns
|
|
-Wredundant-constraints
|
|
-Wnoncanonical-monad-instances
|
|
-Wnoncanonical-monadfail-instances
|
|
build-depends:
|
|
streamly
|
|
, base >= 4.8 && < 5
|
|
, deepseq >= 1.4.0 && < 1.5
|
|
, random >= 1.0 && < 2.0
|
|
, gauge >= 0.2.1 && < 0.3
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- Examples
|
|
-------------------------------------------------------------------------------
|
|
|
|
executable charts
|
|
default-language: Haskell2010
|
|
hs-source-dirs: benchmark
|
|
main-is: Charts.hs
|
|
if flag(dev)
|
|
buildable: True
|
|
build-Depends:
|
|
base >= 4.8 && < 5
|
|
, bench-graph
|
|
, split
|
|
else
|
|
buildable: False
|
|
|
|
executable loops
|
|
default-language: Haskell2010
|
|
main-is: loops.hs
|
|
hs-source-dirs: examples
|
|
if flag(examples) || flag(examples-sdl)
|
|
buildable: True
|
|
build-Depends:
|
|
streamly
|
|
, base >= 4.8 && < 5
|
|
else
|
|
buildable: False
|
|
|
|
executable nested-loops
|
|
default-language: Haskell2010
|
|
main-is: nested-loops.hs
|
|
hs-source-dirs: examples
|
|
if flag(examples) || flag(examples-sdl)
|
|
buildable: True
|
|
build-Depends:
|
|
streamly
|
|
, base >= 4.8 && < 5
|
|
, random >= 1.0.0 && < 1.2
|
|
else
|
|
buildable: False
|
|
|
|
executable parallel-loops
|
|
default-language: Haskell2010
|
|
main-is: parallel-loops.hs
|
|
hs-source-dirs: examples
|
|
if flag(examples) || flag(examples-sdl)
|
|
buildable: True
|
|
build-Depends:
|
|
streamly
|
|
, base >= 4.8 && < 5
|
|
, random >= 1.0.0 && < 1.2
|
|
else
|
|
buildable: False
|