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
- Streamly.Console.StdioCombinators to work with standard input, output, and error streams. This
- Streamly.Control.ExceptionException handling and resource managment operations complementing
- Streamly.Data.ArrayUnboxed immutable arrays with streaming interfaces. Please refer to Streamly.Internal.Data.Array for functions that have not
- Streamly.Data.Array.GenericUnconstrained version of Streamly.Data.Array module. See the Streamly.Data.Array module for documentation.
- Streamly.Data.FoldThe Fold type represents a consumer of a sequence of values, the
- Streamly.Data.MutArrayThis module provides a mutable version of Streamly.Data.Array. The
- Streamly.Data.MutArray.GenericUnconstrained version of Streamly.Data.MutArray module. See the Streamly.Data.MutArray module for documentation.
- Streamly.Data.MutByteArrayThis module implements a low level byte Array type MutByteArray, along
- Streamly.Data.ParserParsers are more powerful but less general than Streamly.Data.Fold.Folds: folds cannot fail but parsers can fail and backtrack. folds ca…
- Streamly.Data.ParserKSee the general notes about parsing in the Streamly.Data.Parser module.
- Streamly.Data.RingArrayThis module provides APIs to create and use unboxed, mutable ring arrays of
- Streamly.Data.Scanl
- Streamly.Data.StreamThe Stream type represents a producer of a sequence of values. Its dual,
- Streamly.Data.StreamKStreams represented as chains of function calls using Continuation Passing
- Streamly.Data.UnfoldFast, composable stream producers with ability to terminate, supporting
- Streamly.FileSystem.DirWarning: The API of this module is subject to change in future releases.
- Streamly.FileSystem.DirIOHigh performance and streaming APIs for reading directories. File system paths are specified using the Streamly.FileSystem.Path.Path
- Streamly.FileSystem.FileWarning: The API of this module is subject to change in future releases.
- Streamly.FileSystem.FileIORead and write streams and arrays to and from files specified by their paths
- Streamly.FileSystem.Handleimport qualified Streamly.FileSystem.Handle as HandleRead and write byte streams and array streams to and from file handles
- Streamly.FileSystem.PathFile system paths that are extensible, high-performance and preserve the OS
- Streamly.Unicode.ParserTo parse a text input, use the decode routines from
- Streamly.Unicode.StreamProcessing Unicode Strings A Char stream is the canonical representation to process Unicode strings.
- Streamly.Unicode.StringConvenient template Haskell quasiquoters to format strings. The str quasiquoter retains newlines in the string when the line is split
Internal modules · 70
- Streamly.Internal.BaseCompatCompatibility functions for "base" package.
- Streamly.Internal.Console.Stdio
- Streamly.Internal.Control.ExceptionAdditional Control.Exception utilities.
- Streamly.Internal.Control.ForkIO
- Streamly.Internal.Control.MonadAdditional Control.Monad utilities.
- Streamly.Internal.Data.Array
- Streamly.Internal.Data.Array.Generic
- Streamly.Internal.Data.Array.StreamCombinators 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.ParserDecode Haskell data types from byte streams. It would be inefficient to use this to compose parsers for general algebraic
- Streamly.Internal.Data.Binary.StreamEncode Haskell data types to byte streams. The primary purpose of this module is to serialize primitive Haskell types
- Streamly.Internal.Data.Builder
- Streamly.Internal.Data.CStringMutByteArray representing null terminated c strings.
- Streamly.Internal.Data.Either.Strict| Strict data types to be used as accumulator for strict left folds and
- Streamly.Internal.Data.FoldSee Streamly.Data.Fold for an overview and
- Streamly.Internal.Data.Fold.ChunkedUse Streamly.Data.Parser instead. Fold a stream of foreign arrays. Fold m a b in this module works
- Streamly.Internal.Data.IOFinalizerA value associated with an IO action that is automatically called whenever
- Streamly.Internal.Data.IORefA mutable variable in a mutation capable monad (IO) holding a Unboxed
- Streamly.Internal.Data.IsMap
- Streamly.Internal.Data.Maybe.Strict| Strict data types to be used as accumulator for strict left folds and
- Streamly.Internal.Data.MutArray
- Streamly.Internal.Data.MutArray.Generic
- Streamly.Internal.Data.MutArray.StreamCombinators to efficiently manipulate streams of mutable arrays. We can either push these in the MutArray module with a "chunks" prefix or
- Streamly.Internal.Data.MutByteArray
- Streamly.Internal.Data.Parser
- Streamly.Internal.Data.ParserK
- Streamly.Internal.Data.Path
- Streamly.Internal.Data.PipeThere are three fundamental types that make up a stream pipeline: Stream: sources Scan: transformations Fold: sinks Streams are sources…
- Streamly.Internal.Data.ProducerA Producer is an Unfold with an extract function added to extract
- Streamly.Internal.Data.Refold.TypeThe Fold type embeds a default initial value, therefore, it is like a
- Streamly.Internal.Data.RingArrayUnboxed, mutable ring arrays of fixed size. In case you need to expand the
- Streamly.Internal.Data.RingArray.Generic
- Streamly.Internal.Data.SVar.Type
- Streamly.Internal.Data.ScanlLeft scans. Scanl vs Fold Folds and scans both are consumers of streams. A left scan is a
- Streamly.Internal.Data.ScanrRight scans. Scanr vs Stream A scan is a generalization of a stream. Like streams, a scan has an internal
- Streamly.Internal.Data.StreamDirect style re-implementation of CPS stream in
- Streamly.Internal.Data.Stream.StreamD
- Streamly.Internal.Data.StreamK
- Streamly.Internal.Data.Time.Clock
- Streamly.Internal.Data.Time.TimeSpec
- Streamly.Internal.Data.Time.Units
- Streamly.Internal.Data.Tuple.Strict| Strict data types to be used as accumulator for strict left folds and
- Streamly.Internal.Data.Unfold
- Streamly.Internal.FileSystem.Dir
- Streamly.Internal.FileSystem.DirIOAPI Design notes: The paths returned by "read" can be absolute (usrbin/ls), relative to
- Streamly.Internal.FileSystem.FileRead and write streams and arrays to and from files specified by their paths
- Streamly.Internal.FileSystem.File.Common
- Streamly.Internal.FileSystem.FileIO
- Streamly.Internal.FileSystem.HandleThe fundamental singleton IO APIs are getChunk and putChunk and the
- Streamly.Internal.FileSystem.PathReferences https://en.wikipedia.org/wiki/Path_(computing) https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file https://…
- Streamly.Internal.FileSystem.Path.Node
- Streamly.Internal.FileSystem.Path.Seg
- Streamly.Internal.FileSystem.Path.SegNode
- Streamly.Internal.FileSystem.Posix.Errno
- Streamly.Internal.FileSystem.Posix.File
- Streamly.Internal.FileSystem.Posix.ReadDir
- Streamly.Internal.FileSystem.PosixPathThis module implements a PosixPath type representing a file system path for
- Streamly.Internal.FileSystem.PosixPath.NodeThis module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.PosixPath.SegThis module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.PosixPath.SegNodeWhen Rooted/Unrooted and File/Dir both are present, Rooted/Unrooted must be
- Streamly.Internal.FileSystem.Windows.File
- Streamly.Internal.FileSystem.Windows.ReadDir
- Streamly.Internal.FileSystem.WindowsPathThis module implements a WindowsPath type representing a file system path for
- Streamly.Internal.FileSystem.WindowsPath.NodeThis module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.WindowsPath.SegThis module provides a type safe path append operation by distinguishing
- Streamly.Internal.FileSystem.WindowsPath.SegNodeWhen Rooted/Unrooted and File/Dir both are present, Rooted/Unrooted must be
- Streamly.Internal.System.IO
- Streamly.Internal.Unicode.Array
- Streamly.Internal.Unicode.ParserTo parse a text input, use the decode routines from
- Streamly.Internal.Unicode.Stream
- Streamly.Internal.Unicode.StringConvenient 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.23.0.0with GHC
- containers-0.8with GHC
- exceptions-0.10.12with GHC
- filepath-1.5.5.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.25.0.0with GHC
- transformers-0.6.3.0with GHC