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

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

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

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

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.21), 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]
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 1 made by adithyaov at 2024-10-28T09:09:25Z
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
Reverse Dependencies 17 direct, 23 indirect [details]
Downloads 1213 total (58 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]