packages feed

zeromq-haskell-0.8.4: README.md

This library provides Haskell bindings to zeromq (http://zeromq.org).

Current status
--------------

This software currently has *beta* status, i.e. it had seen limited testing.

Version 0.8.4 - Various fixes to work with GHC 7.4.1.

Version 0.8.3 - Derive Read in SocketOption and PollEvent.

Version 0.8.2 - Revert changes to support 0MQ 2.x as well as 3.x in a single
package. Instead git branches will be used to track the various 0MQ versions
and a separate zeromq-haskell-3 library will be released to hackage.
Also this releases handles EINTR properly in socket option setting/getting.

Version 0.8.1 - zmqVersion has been renamed to version and reports the
runtime version of 0MQ, instead of the compile time version macros.

Version 0.8.0 - zeromq-haskell can now be compiled either against 0MQ 2.x
(default) or 0MQ 3.x.

Version 0.7.1 - Removes unix dependency

Verison 0.7.0 - Changes semantics of poll to return a list of the same
length as it's parameter to allow identification of Sockets by index.
PollEvent gets another constructor None to denote the absence of polling
events.

Version 0.6.0 - This version renames "with" to "withContext" and
introduces a new "withSocket" resource wrapper. The API is otherwise
identical to 0.5.0

This software requires zeromq version 2.1.x.

Installation
------------

As usual for Haskell packages this software is installed best via Cabal
(http://www.haskell.org/cabal). In addition to GHC it depends on 0MQ of course.

Notes
-----

zeromq-haskell mostly follows 0MQ's API. One difference though is that sockets
are parameterized types, i.e. there is not one socket type but when creating a
socket the desired socket type has to be specified, e.g. `Pair` and the
resulting socket is of type `Socket Pair`.
This additional type information is used to ensure that only options applicable
to the socket type can be set, hence `ZMQ_SUBSCRIBE` and `ZMQ_UNSUBSCRIBE` which
only apply to `ZMQ_SUB` sockets have their own functions (`subscribe` and
`unsubscribe`) which can only be used with sockets of type `Socket Sub`.

Other differences are mostly for convenience. Also one does not deal directly
with 0MQ messages, instead these are created internally as needed.

Examples
--------

The test folder contains some simple tests mostly mimicking the ones that come
with 0MQ.


Bugs
----

If you find any bugs or other shortcomings I would greatly appreciate a bug
report, preferably via http://github.com/twittner/zeromq-haskell/issues or
e-mail to toralf.wittner@gmail.com