Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A stream processing library for Scala
Scala Shell
Tree: e8d0495eaa

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Machines are demand-driven input sources like pipes, conduits, or iteratees, but can support inputs of arbitrary complexity.

You design a Machine by writing a Plan. You then compile the machine if it is to run once to completion, or designate it to run repeatedly.

Simple machines that take one input are called a Process and processes form a Category. More generally you can attach a Process to the output of any type of Machine, yielding a new Machine.

More complicated machines provide other ways of connecting to them.

Typically the use of machines proceeds by using simple plans into machine Tees and Wyes, capping many of the inputs to those with possibly monadic sources, feeding the input (possibly repeatedly).

Machines are entirely pure. They embed no monadic effects. An effectful Driver can be used to drive a machine. Such a driver can have effects when requesting the input and emitting the output.

Something went wrong with that request. Please try again.