streamly-core: Streaming, parsers, arrays, serialization and more

[ array, bsd3, dataflow, library, list, logic, non-determinism, parsing, pipes, streaming, streamly, time ] [ Propose Tags ]

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 and text packages.

  • Interoperability with bytestring and text 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.

Modules

[Index] [Quick Jump]

Flags

Manual Flags

NameDescriptionDefault
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

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0, 0.2.0, 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 2024-01-18T18:23:48Z
Distributions LTSHaskell:0.2.2, NixOS:0.2.2, Stackage:0.2.2
Reverse Dependencies 12 direct, 27 indirect [details]
Downloads 644 total (59 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]