butter: Monad Transformer for Asyncronous Message Passing

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


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,
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 Distributed Computing, 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 2018-06-19T17:36:20Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 3393 total (14 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-06-19 [all 1 reports]

Readme for butter-

[back to package description]

Build Status


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