• Stars
    star
    212
  • Rank 186,122 (Top 4 %)
  • Language
    Scala
  • License
    MIT License
  • Created over 12 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A stream processing library for Scala

Machines

Machines are demand-driven coroutines. They are similar to Pipes, Conduits, or Iteratees, but can support inputs of arbitrary complexity and are entirely pure. Instead of having monadic effects of its own, a Machine can be driven by a Driver which can have effects when feeding the Machine input or when reading its output.

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. Plan provides a monadic API for building machines, but Machines themselves do not form a monad.

Simple machines that read from one input source 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.

Binary packages available at https://bintray.com/runarorama/maven/machines

More Repositories

1

Malakov

Markov Chains for Scala
Scala
87
star
2

scala-mset

Multisets for Scala
Scala
85
star
3

latr

A scala macro for reasonable lazy semantics
Scala
84
star
4

fpiscompanion

Companion booklet for "Functional Programming in Scala"
57
star
5

dice

A Scala library for rolling dice and analyzing probability distributions
Scala
36
star
6

ircz

Internet relay chat demo using scalaz-streams
Scala
33
star
7

scarpia

A Scala port of the Parsec parser combinator library
Scala
30
star
8

scala-bound

A library for developing languages with scoped binders (like forall or lambda).
Scala
28
star
9

fuzzyfind

A Haskell library for fuzzy text search
Haskell
16
star
10

slides

13
star
11

kex

Extensible protocols for Scala
Scala
13
star
12

conway

Conway's Game of Life using a memoized Store comonad
Haskell
11
star
13

unisonlibraries

A collection of libraries I've written for Unison
11
star
14

lambda

Simply typed lambda calculus demo for Lambda Jam 2014
Haskell
11
star
15

runarorama.github.com

HTML
9
star
16

Days2012

Code from the paper "Stackless Scala With Free Monads"
Scala
9
star
17

LambdaScript

A library for functional programming in Javascript
JavaScript
6
star
18

maxel

Maxel algebra for Haskell
Haskell
6
star
19

spellreviews

A blog about the mathematics of 5th edition Dungeons & Dragons
HTML
5
star
20

udb

Unison database library
3
star
21

sannanir

Coq
3
star
22

schnauzer

Scala ElasticSearch client and Query DSL
Scala
3
star
23

alt-names

A collection of alternate names for things in the Unison base libraries
3
star
24

ubase2

Unison base library development
2
star
25

mset

Rational multisets for Haskell
Haskell
1
star
26

Roll20

Roll20 API Scripts
JavaScript
1
star
27

scala-maxel

Maxel algebra for Scala
Scala
1
star
28

unisonlibs

1
star
29

meta-unison

Unison metaprogramming
1
star
30

jaccard

1
star
31

tuebz

A stream processing library for Haskell
Haskell
1
star
32

unison-base

Base library for Unison
1
star