cabal-version: 2.2
name: streamly-examples
version: 0.2.0
license: Apache-2.0
license-file: LICENSE
author: Composewell Technologies
maintainer: streamly@composewell.com
homepage: https://streamly.composewell.com
bug-reports: http://github.com/composewell/streamly-examples/issues
copyright: Copyright (c) 2019 Composewell Technologies
synopsis: Examples for Streamly
description:
Practical examples to demonstrate the features and performance
of Streamly. Includes examples about file IO, text processing,
networking, concurrent programming, reactive programming and
more.
.
These examples also serve as a beginner's guide to express practical
programs using the dataflow programming (streaming) model. Please
visit the <https://streamly.composewell.com Streamly homepage> for
more details and comprehensive documentation.
category:
Streamly, Streaming, Concurrency, Text, Filesystem, Network, Reactivity
stability: provisional
tested-with: GHC==9.4.4, GHC==9.2.7, GHC==9.0.1, GHC==8.10.7
build-type: Simple
extra-source-files:
Changelog.md
Makefile
NOTICE
README.md
examples/WordCount.c
source-repository head
type: git
location: git://github.com/composewell/streamly-examples.git
------------------------------------------------------------------------------
-- Flags --
------------------------------------------------------------------------------
flag fusion-plugin
description: Use fusion plugin for for best performance
manual: True
default: True
flag sdl2
description: Include graphics examples using SDL2
manual: True
default: False
flag interop
description: Include examples of inter-operation with other libraries
manual: True
default: False
------------------------------------------------------------------------------
-- Common Stanzas --
------------------------------------------------------------------------------
common exe-dependencies
build-depends:
streamly == 0.10.0
, streamly-core == 0.2.0
, base >= 4.9 && < 4.20
, directory >= 1.2 && < 1.4
, transformers >= 0.4 && < 0.7
, containers >= 0.5 && < 0.8
, random >= 1.0.0 && < 2
, exceptions >= 0.8 && < 0.11
, transformers-base >= 0.4 && < 0.5
, network >= 2.6 && < 4
, hashable >= 1.2 && < 1.5
, unordered-containers >= 0.2 && < 0.3
, vector >= 0.12 && < 0.14
, mtl >= 2.2 && < 3
common exe-options
import: exe-dependencies
default-language: Haskell2010
hs-source-dirs: examples
ghc-options: -O2
-fdicts-strict
-fspec-constr-recursive=16
-fmax-worker-args=16
-Wall
-Wcompat
-Wunrecognised-warning-flags
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-Wnoncanonical-monad-instances
if impl(ghc >= 9.8)
ghc-options: -Wno-x-partial
if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
ghc-options: -fplugin Fusion.Plugin
build-depends:
fusion-plugin >= 0.2.6 && < 0.3
common exe-options-threaded
import: exe-options
ghc-options: -threaded
-with-rtsopts=-N
------------------------------------------------------------------------------
-- Examples --
------------------------------------------------------------------------------
executable Interop.Vector
import: exe-options-threaded
main-is: Interop/Vector.hs
if !impl(ghcjs) && flag(interop)
buildable: True
else
buildable: False
executable Interop.Pipes
import: exe-options-threaded
main-is: Interop/Pipes.hs
if !impl(ghcjs) && flag(interop)
buildable: True
build-depends: pipes >= 4.3.16 && < 4.4
else
buildable: False
executable Interop.Streaming
import: exe-options-threaded
main-is: Interop/Streaming.hs
if !impl(ghcjs) && flag(interop)
buildable: True
build-depends: streaming >= 0.2.3.0 && < 0.3
else
buildable: False
executable Interop.Conduit
import: exe-options-threaded
main-is: Interop/Conduit.hs
if !impl(ghcjs) && flag(interop)
buildable: True
build-depends: conduit >= 1.3.4.1 && < 1.4
else
buildable: False
executable Intro
import: exe-options-threaded
main-is: Intro.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable WordServer
import: exe-options-threaded
main-is: WordServer.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable MergeServer
import: exe-options-threaded
main-is: MergeServer.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable CmdServer
import: exe-options-threaded
main-is: CmdServer.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable CmdClient
import: exe-options-threaded
main-is: CmdClient.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
-- executable SearchQuery
-- import: exe-options-threaded
-- main-is: SearchQuery.hs
-- if !impl(ghcjs)
-- buildable: True
-- else
-- buildable: False
executable ListDir
import: exe-options-threaded
main-is: ListDir.hs
executable MergeSort
import: exe-options-threaded
main-is: MergeSort.hs
executable AcidRain
import: exe-options-threaded
main-is: AcidRain.hs
executable CirclingSquare
import: exe-options-threaded
main-is: CirclingSquare.hs
if flag(sdl2)
buildable: True
build-Depends:
text >= 1.2.3 && < 2.2
, sdl2 >= 2.5.0 && < 2.6
if os(darwin)
frameworks: Cocoa
else
buildable: False
executable ControlFlow
import: exe-options
main-is: ControlFlow.hs
executable CoreUtilsHandle
import: exe-options
main-is: CoreUtilsHandle.hs
executable CoreUtils
import: exe-options
main-is: CoreUtils.hs
executable EchoServer
import: exe-options-threaded
main-is: EchoServer.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable FileSender
import: exe-options-threaded
main-is: FileSender.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable WordFrequency
import: exe-options
main-is: WordFrequency.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable WordCount
import: exe-options
main-is: WordCount.hs
ghc-options: -main-is WordCount
if !impl(ghcjs)
buildable: True
else
buildable: False
executable WordCountParallel
import: exe-options-threaded
main-is: WordCountParallel.hs
other-modules: WordCount
if !impl(ghcjs)
buildable: True
else
buildable: False
executable WordCountModular
import: exe-options
main-is: WordCountModular.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable WordCountParallelUTF8
import: exe-options-threaded
main-is: WordCountParallelUTF8.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable CamelCase
import: exe-options
main-is: CamelCase.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable CSVParser
import: exe-options
main-is: CSVParser.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable Rate
import: exe-options-threaded
main-is: Rate.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable Split
import: exe-options
main-is: Split.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable FileSystemEvent
import: exe-options-threaded
main-is: FileSystemEvent.hs
if !impl(ghcjs)
buildable: True
else
buildable: False
executable DateTimeParser
import: exe-options
main-is: DateTimeParser.hs
if !impl(ghcjs)
buildable: True
build-depends: tasty-bench >= 0.3 && < 0.4
else
buildable: False
executable LogParser
import: exe-options
main-is: LogParser.hs
if !impl(ghcjs)
buildable: True
build-depends: tasty-bench >= 0.3 && < 0.4
else
buildable: False