Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pthariensflame/scala-pipes
Bidirectional theoretically-sound iteratee-like pipelines in Scala with Scalaz
https://github.com/pthariensflame/scala-pipes
Last synced: 27 days ago
JSON representation
Bidirectional theoretically-sound iteratee-like pipelines in Scala with Scalaz
- Host: GitHub
- URL: https://github.com/pthariensflame/scala-pipes
- Owner: pthariensflame
- Created: 2013-01-03T02:00:21.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2013-07-15T02:32:56.000Z (over 11 years ago)
- Last Synced: 2023-03-27T23:27:46.806Z (over 1 year ago)
- Language: Scala
- Size: 512 KB
- Stars: 11
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
scala-pipes
===*scala-pipes* is an in-progress port to Scala and Scalaz of Gabriel
Gonzalez's [*pipes*](http://hackage.haskell.org/package/pipes),
[*pipes-safe*](http://hackage.haskell.org/package/pipes-safe), and [*pipes-parse*](http://hackage.haskell.org/package/pipes-parse) libraries for Haskell.The design of *scala-pipes* revolves around a central, polymorphic abstraction: `Proxy`, implemented as a type class. All instances of `Proxy` can be treated as a kind of bidirectional enumerator, iteratee, or enumeratee. There is only one type (per `Proxy` transformer), similar to an enumeratee, and enumerator- and iteratee-equivalents are simply type synonyms over the type in question, themselves inherently polymorphic over the underlying `Proxy`.
There is one base `Proxy`, `ProxyBaseT`, which is a `Monad` transformer in addition to being a `Proxy`. Layerable on top of any other `Proxy` are various `Proxy` transformers, including:
- `IdentityP`
- `ReaderP`
- `IndexedStateP` (not implemented yet)
- `WriterP` (not implemented yet)
- `IndexedReaderWriterStateP` (not implemented yet)
- `EitherP` (not implemented yet)
- `OptionP`
- `TryP` (not implemented yet)
- `CodensityP` (not implemented yet)
*scala-pipes* currently depends on *scalaz-7.0.2*.