courier: A message-passing library for simplifying network applications

[ distributed-computing, library, message-oriented, mit, network, program ] [ Propose Tags ]

Inspired by Erlang's simple message-passing facilities, courier provides roughly similar capabilities. Applications simply create one or more endpoints, bind each to a transport using a given name, then can freely send / receive messages to other endpoints just by referencing the name each endpoint bound to its transport.

Note that while the simplicity is inspired by Erlang, the actual semantics of a receive operation are not: receive just returns the next message delivered to an endpoint by a transport. There is no attempt to perform pattern-matching on a range of alternatives, and thus enabling out-of-order receipt. Consequently, all messages delivered to an endpoint will always be received in the order delivered. In this sense, endpoints are more akin to channels in Go but without the strict typing.

Versions [faq],,,,,,,,,,,,,,,,,,,,
Dependencies async, base (==4.*), bytestring, cereal, containers, hslogger, network, network-simple, stm, text [details]
License MIT
Copyright Copyright (c) 2013 Phil Hargett
Author Phil Hargett
Category Network, Distributed Computing, Message-Oriented
Home page
Source repo head: git clone
Uploaded by PhilHargett at Sat Jan 18 21:53:12 UTC 2014
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 10849 total (554 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Successful builds reported [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees