potoki: Simple streaming in IO
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
This library provides a new simpler approach to the IO-streaming problem.
In difference to libraries like "pipes", "conduit", "streaming", this library is specialised to streaming in the IO monad, which greatly simplifies the abstractions that it provides. This simplification is motivated by the fact that the majority of streaming tasks are performed in IO anyway.
Also, unlike the mentioned libraries, "potoki" API doesn't treat streaming as a side operation in its abstractions, which allows it to express the composition of streams using the standard typeclass instances, thus simplifying the API even further.
Naturally, being simpler limits the application area of this library. Thus it is not capable of transforming custom context monads and etc. It is a tradeoff, but, as we expect, the user will rarely be affected by it.
Another benefit of being specialized to IO is the ability to optimize for performance better. It must however be mentioned that this is only theoretical and no benchmarks have yet been performed.
In some of the mentioned regards "potoki" is similar to the "io-streams" library.
However, unlike that library it approaches composition with the standard typeclass instances.
Also, in difference to "io-streams", "potoki" doesn't use exceptions for control-flow.
In fact, "potoki" doesn't use exceptions whatsoever,
instead it makes failures explicit, using the standard Either
type.
Properties
Versions | 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.5, 0.7, 0.7.2, 0.7.3, 0.8, 0.9, 0.9.1, 0.10, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.5, 0.10.5.1, 0.10.6, 0.11, 0.11.1, 0.11.2, 0.11.3, 2, 2.0.1, 2.0.1.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.0.10, 2.0.11, 2.0.12, 2.0.13, 2.0.14, 2.0.15, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.4.1 |
---|---|
Change log | None available |
Dependencies | attoparsec (>=0.13 && <0.15), base (>=4.7 && <5), base-prelude (<2), bytestring (>=0.10 && <0.11), directory (>=1.3 && <2), foldl (>=1.3 && <2), hashable (>=1 && <2), potoki-core (>=1.2 && <1.3), profunctors (>=5.2 && <6), text (>=1 && <2), unagi-chan (>=0.4 && <0.5), unordered-containers (>=0.2 && <0.3), vector (>=0.12 && <0.13) [details] |
License | MIT |
Copyright | (c) 2017, Nikita Volkov |
Author | Nikita Volkov <nikita.y.volkov@mail.ru> |
Maintainer | Nikita Volkov <nikita.y.volkov@mail.ru> |
Category | Streaming |
Home page | https://github.com/nikita-volkov/potoki |
Bug tracker | https://github.com/nikita-volkov/potoki/issues |
Source repo | head: git clone git://github.com/nikita-volkov/potoki.git |
Uploaded | by NikitaVolkov at 2018-02-06T13:12:34Z |
Modules
[Index]
Downloads
- potoki-0.6.5.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees