streamly: Streaming, dataflow programming and declarative concurrency
For upgrading to streamly-0.9.0+ please read the Streamly-0.9.0 upgrade guide.
Streamly is a standard library for Haskell that focuses on C-like performance, modular combinators, and streaming data flow model. Streamly consists of two packages, the streamly-core package provides functionality that depends only on boot libraries, and the streamly package provides additional functionality like concurrency, time, lifted exceptions, and networking. For unified documentation visit the streamly website.
Streamly provides unified, modular building blocks to build high-performance, concurrent, scalable applications in Haskell. Stream fusion optimizations in streamly enable exceptional modularity with high performance comparable to C. Streamly complements the Haskell base package, supplying additional functionality to quickly build general-purpose applications in Haskell. For high-level functionality built over streamly like streaming OS processes, shell programming, GNU coreutils, statistics, and compression libraries please see the streamly ecosystem packages.
Performance with modularity:
Performance on par with C (Benchmarks)
API close to standard Haskell lists (Examples)
Declarative concurrency with automatic scaling
Filesystem, fsnotify, network, and Unicode support included
Fast binary serialization (with optional JSON like features)
More functionality is provided via many (ecosystem packages)
Unified and powerful abstractions:
Unifies streams, arrays, folds, and parsers
Unifies
Data.List
,list-t
, andlogict
with streamingUnifies concurrency with standard streaming abstractions
Unifies reactive, time-domain programming with streaming
Unifies binary serialization and unboxed arrays
Interworks with other streaming libraries
[Skip to Readme]
Modules
[Index] [Quick Jump]
- Streamly
- Data
- Internal
- Control
- Data
- Streamly.Internal.Data.Atomics
- Streamly.Internal.Data.Channel
- Streamly.Internal.Data.Cont
- Fold
- IOFinalizer
- IsMap
- Streamly.Internal.Data.SVar
- Streamly.Internal.Data.SmallArray
- Stream
- Streamly.Internal.Data.Stream.Ahead
- Streamly.Internal.Data.Stream.Async
- Streamly.Internal.Data.Stream.IsStream
- Streamly.Internal.Data.Stream.MkType
- Streamly.Internal.Data.Stream.Parallel
- Streamly.Internal.Data.Stream.Prelude
- Streamly.Internal.Data.Stream.SVar
- Streamly.Internal.Data.Stream.Serial
- Streamly.Internal.Data.Stream.Zip
- Streamly.Internal.Data.Stream.ZipAsync
- Unfold
- FileSystem
- Streamly.Internal.FileSystem.Event
- Streamly.Internal.FileSystem.Event.Darwin
- Streamly.Internal.FileSystem.Event.Linux
- Streamly.Internal.FileSystem.Event.Windows
- Streamly.Internal.FileSystem.Event
- Network
- Unicode
- Network
- Streamly.Prelude
Flags
Manual Flags
Name | Description | Default |
---|---|---|
fusion-plugin | Use fusion plugin for benchmarks and executables | Disabled |
inspection | Enable inspection testing | Disabled |
debug | Debug build with asserts enabled | Disabled |
dev | Development build | Disabled |
has-llvm | Use llvm backend for code generation | Disabled |
opt | off=GHC default, on=-O2 | Enabled |
limit-build-mem | Limits memory when building | Disabled |
use-unliftio | Use unliftio-core instead of monad-control | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- streamly-0.10.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1.0, 0.1.1, 0.1.2, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.5.2, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.3.1, 0.7.3.2, 0.8.0, 0.8.1, 0.8.1.1, 0.8.2, 0.8.3, 0.9.0, 0.10.0, 0.10.1 |
---|---|
Change log | CHANGELOG.md |
Dependencies | atomic-primops (>=0.8 && <0.9), base (>=4.12 && <4.21), containers (>=0.6.0 && <0.8), deepseq (>=1.4.4 && <1.6), directory (>=1.2.2 && <1.4), exceptions (>=0.8.0 && <0.11), hashable (>=1.3 && <1.5), heaps (>=0.3 && <0.5), lockfree-queue (>=0.2.4 && <0.3), monad-control (>=1.0 && <1.1), mtl (>=2.2.2 && <2.4), network (>=2.6 && <3.3), streamly-core (==0.2.2), template-haskell (>=2.14 && <2.22), transformers (>=0.5.5 && <0.7), transformers-base (>=0.4 && <0.5), unicode-data (>=0.1 && <0.7), unordered-containers (>=0.2 && <0.3), Win32 (>=2.6 && <2.14) [details] |
Tested with | ghc ==8.6.5, ghc ==8.8.4, ghc ==8.10.7, ghc ==9.0.2, ghc ==9.2.8, ghc ==9.4.7, ghc ==9.6.3, ghc ==9.8.1 |
License | BSD-3-Clause |
Copyright | 2017 Composewell Technologies |
Author | Composewell Technologies |
Maintainer | streamly@composewell.com |
Revised | Revision 4 made by adithyaov at 2024-10-28T09:10:02Z |
Category | Streamly, Concurrency, Streaming, Dataflow, Pipes, Reactivity, List, Logic, Non-determinism, Parsing, Array, Time, Unicode, Filesystem, Network |
Home page | https://streamly.composewell.com |
Bug tracker | https://github.com/composewell/streamly/issues |
Source repo | head: git clone https://github.com/composewell/streamly |
Uploaded | by adithyaov at 2024-01-18T18:24:38Z |
Distributions | LTSHaskell:0.10.1, NixOS:0.10.1 |
Reverse Dependencies | 34 direct, 4 indirect [details] |
Downloads | 18477 total (167 in the last 30 days) |
Rating | 2.5 (votes: 6) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |