butter: Monad Transformer for Asyncronous Message Passing

[ bsd3, concurrency, distrbution, distributed-computing, library ] [ Propose Tags ]

Please see the README on Github at https://github.com/System-Indystress/Butter#readme

[Skip to Readme]
Versions [faq],,,,,
Change log ChangeLog.md
Dependencies aeson, base (<5), bytestring, containers, forkable-monad, free, HUnit, network-simple, stm, template-haskell, text, transformers [details]
License BSD-3-Clause
Copyright 2018 SID.run
Author Matthew Ahrens
Maintainer matt.p.ahrens@gmail.com
Category Distrbution, Concurrency
Home page https://github.com/System-Indystress/Butter#readme
Bug tracker https://github.com/System-Indystress/Butter/issues
Source repo head: git clone https://github.com/System-Indystress/Butter
Uploaded by mpahrens at Wed Jun 13 00:05:36 UTC 2018
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 815 total (117 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2018-06-13 [all 3 reports]


  • Distrib
    • Distrib.Butter
      • Distrib.Butter.Lang
      • Distrib.Butter.Lib
        • Distrib.Butter.Lib.K
        • Distrib.Butter.Lib.Protocol


Maintainer's Corner

For package maintainers and hackage trustees

Readme for butter-

[back to package description]


For easily spreading around monadic computation


  • Example Language usage in test/first/Main.hs
  • Example Protocol usage in test/protocol/Main.hs

Current Language Features

Actor Monad Transformer that supports

  • self
  • send
  • receive
    • selective based on type
    • yields on empty receive or type mismatch
  • spawn
    • built on Forkable-Monad and forkIO
  • lift
  • named pids
  • connect to remote
    • send via named

Current Library Features

  • Protocol (OTP Genserver like typeclass)
    • explicit State type family
    • explicit Monadic Context type family
    • Results API

Future Core Language Features

  • monitor
  • serializable computation typeclass
    • spawn remote
    • monitor remote
  • query remote
  • encrypted message passing by default
    • config to change encode and decode

Future Library Features

  • quasiquoter / convenience Syntax
  • OTP
    • supervisor trees
  • haddock documentation
  • versioned tutorial series