streamly-core: Streaming, parsers, arrays, serialization and more
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.
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: "streamly-core" and "streamly". streamly-core provides basic features, and depends only on GHC boot libraries (see note below), while streamly provides higher-level features like concurrency, time, lifted exceptions, and networking. For documentation, visit the Streamly website.
The streamly-core package provides the following functionality:
Streams as composable producers of a sequence of values.
Streams provide all the functionality provided by Haskell lists but in an effectful, streaming fashion with better performance.
Streams provide ListT and logic programming functionality as well.
Folds as composable stream consumers that reduce the streams to a single value or reduce segments of streams to transform the stream.
Parsers as more powerful, composable stream consumers supporting standard parser combinators with backtracking but in a streaming fashion.
Arrays with streaming interfaces providing high performance, modularity, and concise interface as all streaming operations can be performed on arrays.
Arrays can be immutable or mutable, unboxed or boxed, pinned or unpinned.
Arrays generalize the functionality provided by
bytestring
andtext
packages.Interoperability with
bytestring
andtext
is provided via separate packages.Arrays and folds provide natural builder functionality so there are no separate builder modules.
High performance binary serialization with configurable JSON like features.
Streaming combinators for unicode text processing, providing functionality equivalent to the
text
package.String interpolation for convenient construction of strings.
Streaming console IO (stdin/stdout) operations.
Streaming file and directory IO operations.
This package covers some or all of the functionality covered
by streaming, pipes, conduit, list-t, logic-t, foldl, attoparsec,
array, primitive, vector, vector-algorithms, binary, cereal, store,
bytestring, text, stringsearch, interpolate
. Streamly provides a
consistent, concise, modular and performant interface for all this
functionality.
Note: The dependencies "heaps" and "monad-control" are included in the package solely for backward compatibility, and will be removed in future versions.
Properties
Versions | 0.1.0, 0.2.0, 0.2.1, 0.2.1, 0.2.2 |
---|---|
Change log | Changelog.md |
Dependencies | base (>=4.12 && <4.20), containers (>=0.6.0 && <0.8), directory (>=1.3.3 && <1.4), exceptions (>=0.8.0 && <0.11), filepath (>=1.4.2 && <1.6), fusion-plugin-types (>=0.1 && <0.2), ghc-bignum (>=1.0 && <2), ghc-prim (>=0.5.3 && <0.12), heaps (>=0.3 && <0.5), integer-gmp (>=1.0 && <1.2), monad-control (>=1.0 && <1.1), template-haskell (>=2.14 && <2.22), transformers (>=0.5.5 && <0.7), unix (>=2.7.0 && <2.9), Win32 (>=2.6 && <2.14) [details] |
License | BSD-3-Clause |
Copyright | 2017 Composewell Technologies |
Author | Composewell Technologies |
Maintainer | streamly@composewell.com |
Category | Streamly, Streaming, Dataflow, Pipes, List, Logic, Non-determinism, Parsing, Array, Time |
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 2023-12-16T11:31:59Z |
Modules
[Index] [Quick Jump]
- Streamly
- Console
- Data
- FileSystem
- Internal
- Streamly.Internal.BaseCompat
- Console
- Control
- Data
- Streamly.Internal.Data.Array
- Binary
- Streamly.Internal.Data.Builder
- Either
- Streamly.Internal.Data.Fold
- Streamly.Internal.Data.IOFinalizer
- Streamly.Internal.Data.IsMap
- Maybe
- Streamly.Internal.Data.MutArray
- Streamly.Internal.Data.MutByteArray
- Streamly.Internal.Data.Parser
- Streamly.Internal.Data.ParserK
- Streamly.Internal.Data.Pipe
- Streamly.Internal.Data.Producer
- Refold
- Streamly.Internal.Data.Ring
- SVar
- Streamly.Internal.Data.Stream
- Streamly.Internal.Data.StreamK
- Streamly.Internal.Data.StreamK.Alt
- Time
- Tuple
- Streamly.Internal.Data.Unfold
- FileSystem
- System
- Unicode
- Unicode
Flags
Manual Flags
Name | Description | Default |
---|---|---|
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-unfolds | Use unfolds for generation everywhere | Disabled |
use-folds | Use folds for elimination everywhere | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- streamly-core-0.2.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