machines: Networked stream transducers

[ bsd3, control, enumerator, library ] [ Propose Tags ]

Networked stream transducers


[Skip to Readme]
Versions 0.1, 0.1.1, 0.1.2, 0.2.1, 0.2.1.1, 0.2.1.2, 0.2.1.3, 0.2.2, 0.2.3, 0.2.3.1, 0.2.4, 0.2.5, 0.4, 0.4.0.1, 0.4.1, 0.5.1, 0.6, 0.6.1, 0.6.2, 0.6.3
Change log CHANGELOG.markdown
Dependencies base (>1 && <1), comonad (==3.0.*), containers (>=0.3 && <0.6), free (>=3.1.1 && <3.2), mtl (>=2.1.1 && <2.2), profunctors (==3.0.*), semigroups (>=0.8.3 && <0.9), transformers (==0.3.*) [details]
License BSD-3-Clause
Copyright Copyright (C) 2012 Edward A. Kmett
Author Edward A. Kmett, Rúnar Bjarnason
Maintainer Edward A. Kmett <ekmett@gmail.com>
Revised Revision 3 made by HerbertValerioRiedel at Mon Aug 17 21:55:18 UTC 2015
Category Control, Enumerator
Home page http://github.com/ekmett/machines/
Bug tracker http://github.com/ekmett/machines/issues
Source repo head: git clone git://github.com/ekmett/machines.git
Uploaded by EdwardKmett at Tue Aug 28 03:11:45 UTC 2012
Distributions LTSHaskell:0.6.3, NixOS:0.6.3, Stackage:0.6.3, openSUSE:0.6.3
Downloads 12369 total (93 in the last 30 days)
Rating 2.5 (votes: 4) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-02 [all 7 reports]
Hackage Matrix CI

Modules

  • Data
    • Data.Machine
      • Data.Machine.Is
      • Data.Machine.Mealy
      • Data.Machine.Moore
      • Data.Machine.Plan
      • Data.Machine.Process
      • Data.Machine.Tee
      • Data.Machine.Type
      • Data.Machine.Unread
      • Data.Machine.Wye

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for machines-0.1

[back to package description]

machines

Build Status

Machines are demand driven input sources like pipes or conduits, but can support multiple inputs.

You design a Machine by writing a Plan. You then construct the machine.

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 rest input (possibly repeatedly) and calling run or runT to get the answers out.

There is a lot of flexibility when building a machine in choosing between empowering the machine to run its own monadic effects or delegating that responsibility to a custom driver.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.

-Edward Kmett