Package0.3.1StreamlyStreamingDataflowPipesListLogicNon-determinismParsingArrayTime
streamly-core
Streaming, parsers, arrays, serialization and more
- Version0.3.1
- CategoryStreamly, Streaming, Dataflow, Pipes, List, Logic, Non-determinism, Parsing, Array, Time
- LicenceBSD-3-Clause
- AuthorComposewell Technologies
- Maintainerstreamly@composewell.com
- Homepagestreamly.composewell.com
- Pinned byhackage streamly-core 0.3.1
- Sourcehackage.haskell.org/package/streamly-core-0.3.1
Modules
94 modules- Streamly.Console.Stdio10Combinators to work with standard input, output, and error streams. This
- Streamly.Control.Exception5Exception handling and resource managment operations complementing
- Streamly.Data.Array32Unboxed immutable arrays with streaming interfaces. Please refer to Streamly.Internal.Data.Array for functions that have not
- Streamly.Data.Array.Generic19Unconstrained version of Streamly.Data.Array module. See the Streamly.Data.Array module for documentation.
- Streamly.Data.Fold109The Fold type represents a consumer of a sequence of values, the
- Streamly.Data.MutArray42This module provides a mutable version of Streamly.Data.Array. The
- Streamly.Data.MutArray.Generic25Unconstrained version of Streamly.Data.MutArray module. See the Streamly.Data.MutArray module for documentation.
- Streamly.Data.MutByteArray15This module implements a low level byte Array type MutByteArray, along
- Streamly.Data.Parser34Parsers are more powerful but less general than Streamly.Data.Fold.Folds: folds cannot fail but parsers can fail and backtrack. folds ca…
- Streamly.Data.ParserK9See the general notes about parsing in the Streamly.Data.Parser module.
- Streamly.Data.RingArray30This module provides APIs to create and use unboxed, mutable ring arrays of
- Streamly.Data.Scanl62
- Streamly.Data.Stream117The Stream type represents a producer of a sequence of values. Its dual,
- Streamly.Data.StreamK47Streams represented as chains of function calls using Continuation Passing
- Streamly.Data.Unfold30Fast, composable stream producers with ability to terminate, supporting
- Streamly.FileSystem.Dir2Warning: The API of this module is subject to change in future releases.
- Streamly.FileSystem.DirIO7High performance and streaming APIs for reading directories. File system paths are specified using the Streamly.FileSystem.Path.Path
- Streamly.FileSystem.File7Warning: The API of this module is subject to change in future releases.
- Streamly.FileSystem.FileIO7Read and write streams and arrays to and from files specified by their paths
- Streamly.FileSystem.Handle17import qualified Streamly.FileSystem.Handle as HandleRead and write byte streams and array streams to and from file handles
- Streamly.FileSystem.Path29File system paths that are extensible, high-performance and preserve the OS
- Streamly.Unicode.Parser29To parse a text input, use the decode routines from
- Streamly.Unicode.Stream13Processing Unicode Strings A Char stream is the canonical representation to process Unicode strings.
- Streamly.Unicode.String1Convenient template Haskell quasiquoters to format strings. The str quasiquoter retains newlines in the string when the line is split
Internal modules · 70
- Streamly.Internal.BaseCompat2Compatibility functions for "base" package.
- Streamly.Internal.Console.Stdio15
- Streamly.Internal.Control.Exception13Additional Control.Exception utilities.
- Streamly.Internal.Control.ForkIO3
- Streamly.Internal.Control.Monad1Additional Control.Monad utilities.
- Streamly.Internal.Data.Array189
- Streamly.Internal.Data.Array.Generic39
- Streamly.Internal.Data.Array.Stream25Combinators to efficiently manipulate streams of immutable arrays. We can either push these in the MutArray module with a "chunks" prefix or
- Streamly.Internal.Data.Binary.Parser25Decode Haskell data types from byte streams. It would be inefficient to use this to compose parsers for general algebraic
- Streamly.Internal.Data.Binary.Stream25Encode Haskell data types to byte streams. The primary purpose of this module is to serialize primitive Haskell types
- Streamly.Internal.Data.Builder1
- Streamly.Internal.Data.CString5MutByteArray representing null terminated c strings.
- Streamly.Internal.Data.Either.Strict5| Strict data types to be used as accumulator for strict left folds and
- Streamly.Internal.Data.Fold237See Streamly.Data.Fold for an overview and
- Streamly.Internal.Data.Fold.Chunked11Use Streamly.Data.Parser instead. Fold a stream of foreign arrays. Fold m a b in this module works
- Streamly.Internal.Data.IOFinalizer4A value associated with an IO action that is automatically called whenever
- Streamly.Internal.Data.IORef7A mutable variable in a mutation capable monad (IO) holding a Unboxed
- Streamly.Internal.Data.IsMap1
- Streamly.Internal.Data.Maybe.Strict4| Strict data types to be used as accumulator for strict left folds and
- Streamly.Internal.Data.MutArray270
- Streamly.Internal.Data.MutArray.Generic56
- Streamly.Internal.Data.MutArray.Stream14Combinators to efficiently manipulate streams of mutable arrays. We can either push these in the MutArray module with a "chunks" prefix or
- Streamly.Internal.Data.MutByteArray103
- Streamly.Internal.Data.Parser107
- Streamly.Internal.Data.ParserK17
- Streamly.Internal.Data.Path2
- Streamly.Internal.Data.Pipe13There are three fundamental types that make up a stream pipeline: Stream: sources Scan: transformations Fold: sinks Streams are sources…
- Streamly.Internal.Data.Producer19A Producer is an Unfold with an extract function added to extract
- Streamly.Internal.Data.Refold.Type9The Fold type embeds a default initial value, therefore, it is like a
- Streamly.Internal.Data.RingArray46Unboxed, mutable ring arrays of fixed size. In case you need to expand the
- Streamly.Internal.Data.RingArray.Generic9
- Streamly.Internal.Data.SVar.Type32
- Streamly.Internal.Data.Scanl136Left scans. Scanl vs Fold Folds and scans both are consumers of streams. A left scan is a
- Streamly.Internal.Data.Scanr12Right scans. Scanr vs Stream A scan is a generalization of a stream. Like streams, a scan has an internal
- Streamly.Internal.Data.Stream407Direct style re-implementation of CPS stream in
- Streamly.Internal.Data.Stream.StreamD0
- Streamly.Internal.Data.StreamK170
- Streamly.Internal.Data.Time.Clock11
- Streamly.Internal.Data.Time.TimeSpec1
- Streamly.Internal.Data.Time.Units21
- Streamly.Internal.Data.Tuple.Strict4| Strict data types to be used as accumulator for strict left folds and
- Streamly.Internal.Data.Unfold115
- Streamly.Internal.FileSystem.Dir14
- Streamly.Internal.FileSystem.DirIO17API Design notes: The paths returned by "read" can be absolute (usrbin/ls), relative to
- Streamly.Internal.FileSystem.File28Read and write streams and arrays to and from files specified by their paths
- Streamly.Internal.FileSystem.File.Common2
- Streamly.Internal.FileSystem.FileIO20
- Streamly.Internal.FileSystem.Handle28The fundamental singleton IO APIs are getChunk and putChunk and the
- Streamly.Internal.FileSystem.Path62References https://en.wikipedia.org/wiki/Path_(computing) https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file https://…
- Streamly.Internal.FileSystem.Path.Node0
- Streamly.Internal.FileSystem.Path.Seg0
- Streamly.Internal.FileSystem.Path.SegNode0
- Streamly.Internal.FileSystem.Posix.Errno4
- Streamly.Internal.FileSystem.Posix.File43
- Streamly.Internal.FileSystem.Posix.ReadDir13
- Streamly.Internal.FileSystem.PosixPath60This module implements a PosixPath type representing a file system path for
- Streamly.Internal.FileSystem.PosixPath.Node8This module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.PosixPath.Seg8This module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.PosixPath.SegNode9When Rooted/Unrooted and File/Dir both are present, Rooted/Unrooted must be
- Streamly.Internal.FileSystem.Windows.File0
- Streamly.Internal.FileSystem.Windows.ReadDir0
- Streamly.Internal.FileSystem.WindowsPath60This module implements a WindowsPath type representing a file system path for
- Streamly.Internal.FileSystem.WindowsPath.Node8This module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.WindowsPath.Seg8This module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.WindowsPath.SegNode9When Rooted/Unrooted and File/Dir both are present, Rooted/Unrooted must be
- Streamly.Internal.System.IO4
- Streamly.Internal.Unicode.Array4
- Streamly.Internal.Unicode.Parser32To parse a text input, use the decode routines from
- Streamly.Internal.Unicode.Stream48
- Streamly.Internal.Unicode.String1Convenient template Haskell quasiquoters to format strings.
Description
For upgrading to streamly-0.9.0+ please read the Streamly-0.9.0 upgrade guide.
Streamly is a high-performance, beginner-friendly standard library for Haskell. It unifies streaming with list transformers and logic programming; unifies streaming with concurrency and reactive programming; unifies arrays with ring arrays, text, bytestring and vector use cases; unifies arrays with builders and binary serialization; generalizes parsers to any input type and unifies attoparsec, parsec use cases with better performance; provides streaming fileIO — all with a clean, consistent, well-integrated and streaming enabled API.
Streams are designed to have a list like interface — no steep learning curve, no complex types. Streamly is designed to build general purpose applications in a truly functional manner, from simple hello-world to advanced high-performance systems. The design emphasizes simplicity, modularity, and code reuse with minimal building blocks. Performance is on par with C, tuning is easy, and it’s hard to get it wrong.
Streamly is serial by default, with seamless declarative concurrency that scales automatically when needed. It provides prompt and safe resource management, works well with other streaming libraries as well as core libraries like bytestring and text, and is backed by solid documentation.
streamly-core is a Haskell standard library built on top of base and GHC boot libraries only. Stream processing abstractions include streams, scans, folds, parsers; and console IO, file IO; text processing. Array abstractions include pinned, unpinned, mutable, immutable, boxed and unboxed arrays, and ring arrays. Builders, binary serialization, and deserialization are built-in features of arrays.
This package provides a high-performance, unified and ergonomic alternative to many disparate packages, such as streaming, pipes, conduit, list-t, logict, foldl, attoparsec, array, primitive, vector, vector-algorithms, binary, cereal, store, bytestring, text, stringsearch, interpolate, filepath, and path.
Performant. Unified. Modular. Powerful. Simple.
Learn more at the streamly website.
Depends on
9 packages- base-4.22.0.0with GHC
- containers-0.8with GHC
- exceptions-0.10.11with GHC
- filepath-1.5.4.0with GHC
- fusion-plugin-types-0.1.0in this set
- heaps-0.4.1in this set
- monad-control-1.0.3.1in this set
- template-haskell-2.24.0.0with GHC
- transformers-0.6.1.2with GHC