streamly: Streaming, dataflow programming and declarative concurrency
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Warnings:
- 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit and not just imposing longer compile times on your users.
- Declared and used flag sets differ: debug, dev, fusion-plugin, has-llvm, inspection, limit-build-mem, opt, use-unliftio /= debug, dev, has-llvm, inspection, limit-build-mem, opt, use-unliftio.
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]
Properties
Versions | 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, 0.10.1 |
---|---|
Change log | CHANGELOG.md |
Dependencies | atomic-primops (>=0.8 && <0.9), base (>=4.12 && <4.20), 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.2), 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.5), unordered-containers (>=0.2 && <0.3), Win32 (>=2.6 && <2.14) [details] |
License | BSD-3-Clause |
Copyright | 2017 Composewell Technologies |
Author | Composewell Technologies |
Maintainer | streamly@composewell.com |
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-18T11:07:17Z |
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 (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees