on master help sign in
Update intro in cabal file
commit59de28719d5df0fdc435a52781812abc2535384b authorHarendra Kumar <harendra@composewell.com> dateFri 2 Apr 2021, 23:35 (6 years ago) parent549d7fd
1 file changed+17−56
streamly.cabal+17−56
streamly.cabal+17−56
@@ -1,64 +1,25 @@
11cabal-version: 2.2
22name: streamly
33version: 0.7.2
4−synopsis: Beautiful Streaming, Concurrent and Reactive Composition
4+synopsis: Data flow programming and declarative concurrency
55description:
6− Streamly is a framework for writing programs in a high level, declarative
7− data flow programming paradigm. It provides a simple API, very close to
8− standard Haskell lists. A program is expressed as a composition of data
9− processing pipes, generally known as streams. Streams can be generated,
10− merged, chained, mapped, zipped, and consumed concurrently – enabling a high
11− level, declarative yet concurrent composition of programs. Programs can be
12− concurrent or non-concurrent without any significant change. Concurrency is
13− auto scaled based on consumption rate. Programmers do not have to be aware
14− of threads, locking or synchronization to write scalable concurrent programs.
15− Streamly provides C like performance, orders of magnitude better compared to
16− existing streaming libraries.
6+ Streamly is a framework for modular data flow based programming and
7+ declarative concurrency. Powerful stream fusion framework in streamly
8+ allows high performance combinatorial programming even when using byte level
9+ streams. Key features include:
1710 .
18− Streamly is designed to express the full spectrum of programs with highest
19− performance. Do not think that if you are writing a small and simple program
20− it may not be for you. It expresses a small "hello world" program with the
21− same efficiency, simplicity and elegance as a large scale concurrent
22− application. It unifies many different aspects of special purpose libraries
23− into a single yet simple framework.
24− .
25− Streamly covers the functionality provided by Haskell lists as well as the
26− functionality provided by streaming libraries like
27− <https://hackage.haskell.org/package/streaming streaming>,
28− <https://hackage.haskell.org/package/pipes pipes>, and
29− <https://hackage.haskell.org/package/conduit conduit> with a simpler API and
30− better performance. Streamly provides
31− advanced stream composition including various ways of appending, merging,
32− zipping, splitting, grouping, distributing, partitioning and unzipping of
33− streams with true streaming and with concurrency. Streamly subsumes the
34− functionality of list transformer libraries like @pipes@ or
35− <https://hackage.haskell.org/package/list-t list-t> and also the logic
36− programming library <https://hackage.haskell.org/package/logict logict>.
37− The grouping, splitting and windowing combinators in streamly can be compared
38− to the window operators in <https://flink.apache.org/ Apache Flink>.
39− However, compared to Flink streamly has a pure functional, succinct and
40− expressive API.
41− .
42− The concurrency capabilities of streamly are much more advanced and powerful
43− compared to the basic concurrency functionality provided by the
44− <https://hackage.haskell.org/package/async async> package. Streamly is a
45− first class reactive programming library. If you are familiar with
46− <http://reactivex.io/ Reactive Extensions> you will find that it is very
47− similar. For most RxJs combinators you can find or write corresponding ones
48− in streamly. Streamly can be used as an alternative to
49− <https://hackage.haskell.org/package/Yampa Yampa> or
50− <https://hackage.haskell.org/package/reflex reflex> as well.
51− .
52− Streamly focuses on practical engineering with high performance. From well
53− written streamly programs one can expect performance competitive to C. High
54− performance streaming eliminates the need for string and text libraries like
55− <https://hackage.haskell.org/package/bytestring bytestring>,
56− <https://hackage.haskell.org/package/text text> and their lazy and strict
57− flavors. The confusion and cognitive overhead arising from different
58− string types is eliminated. The two fundamental types in streamly are arrays
59− for storage and streams for processing. Strings and text are simply streams
60− or arrays of 'Char' as they should be. Arrays in streamly have performance
61− at par with the vector library.
11+ * Performance at par with C
12+ * Simple API, similar to standard Haskell lists.
13+ * Declarative, auto scaled concurrency
14+ * Simple, yet powerful abstractions
15+ * Unifies streams, arrays and parsers
16+ * Obviates the need for text and bytestring
17+ * Covers the functionality of list-t and logict
18+ * Covers all Data.List combinators
19+ * Supports numerous time domain combinators
20+ * Interworks with other streaming libraries
21+ * Filesystem, fsnotify, network and unicode support included
22+ * More functionality provided via many ecosystem packages
6223 .
6324 Where to find more information:
6425 .