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.

Applications may process messages in the order received at an endpoint, or use selective message reception to process the first message arriving at an endpoint that also matches a provided selection function. Through selective message reception, applications may approximate the style of an Erlang application, and enjoy better composability of message reception with multiple independent dispatch routines or message pumps.

Versions [faq],,,,,,,,,,,,,,,,,,,,
Change log
Dependencies async, base (==4.*), bytestring, cereal, containers, hslogger, network, network-simple, stm, text [details]
License MIT
Copyright Copyright (c) 2013-14 Phil Hargett
Author Phil Hargett
Category Network, Distributed Computing, Message-Oriented
Home page
Source repo head: git clone
Uploaded by PhilHargett at Sat Jan 25 19:23:30 UTC 2014
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 10621 total (369 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