zeromq4-haskell-0.8.0: Bindings to ZeroMQ 4.x

Copyright | (c) 2013 Toralf Wittner
License | MIT
Maintainer | Toralf Wittner <tw@dtex.org>
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell98

System.ZMQ4.Monadic

Contents

- Type Definitions
  - Socket type-classes
  - Socket Types
- General Operations
- ZMQ Options (Read)
- ZMQ Options (Write)
- Socket operations
- Socket Options (Read)
- Socket Options (Write)
- Error Handling
- Re-exports
- Low-level Functions

Description

This modules exposes a monadic interface of `ZMQ4`. Actions run inside a `ZMQ` monad and `Socket`s are guaranteed not to leak outside their corresponding `runZMQ` scope. Running `ZMQ` computations asynchronously is directly supported through `async`.

Synopsis

- data ZMQ z a
- data Socket z t
- data Flag
  - = DontWait
  - | SendMore
- data Switch
  - = Default
  - | On
  - | Off
- type Timeout = Int64
- data Event
  - = In
  - | Out
  - | Err
- data EventType
  - = ConnectedEvent
  - | ConnectDelayedEvent
  - | ConnectRetriedEvent
  - | ListeningEvent
  - | BindFailedEvent
  - | AcceptedEvent
  - | AcceptFailedEvent
  - | ClosedEvent
  - | CloseFailedEvent
  - | DisconnectedEvent
  - | MonitorStoppedEvent
  - | AllEvents
- data EventMsg
  - = Connected !ByteString !Fd
  - | ConnectDelayed !ByteString
  - | ConnectRetried !ByteString !Int
  - | Listening !ByteString !Fd
  - | BindFailed !ByteString !Int
  - | Accepted !ByteString !Fd
  - | AcceptFailed !ByteString !Int
  - | Closed !ByteString !Fd
  - | CloseFailed !ByteString !Int
  - | Disconnected !ByteString !Fd
  - | MonitorStopped !ByteString !Int
- data Poll s m where
  - Sock :: s t -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m
  - File :: Fd -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m
- data KeyFormat a where
  - BinaryFormat :: KeyFormat Div4
  - TextFormat :: KeyFormat Div5
- data SecurityMechanism
  - = Null
  - | Plain
  - | Curve
- class SocketType a
- class Sender a
- class Receiver a
- class Subscriber a
- class SocketLike s
- class Conflatable a
- class SendProbe a
- data Pair = Pair
- data Pub = Pub
- data Sub = Sub
- data XPub = XPub
- data XSub = XSub
- data Req = Req
- data Rep = Rep
- data Dealer = Dealer
- data Router = Router
- data Pull = Pull
- data Push = Push
- data Stream = Stream
- version :: ZMQ z (Int, Int, Int)
- runZMQ :: MonadIO m => (forall z. ZMQ z a) -> m a
- async :: ZMQ z a -> ZMQ z (Async a)
- socket :: SocketType t => t -> ZMQ z (Socket z t)
- ioThreads :: ZMQ z Word
- maxSockets :: ZMQ z Word
- setIoThreads :: Word -> ZMQ z ()
- setMaxSockets :: Word -> ZMQ z ()
- close :: Socket z t -> ZMQ z ()
- bind :: Socket z t -> String -> ZMQ z ()
- unbind :: Socket z t -> String -> ZMQ z ()
- connect :: Socket z t -> String -> ZMQ z ()
- disconnect :: Socket z t -> String -> ZMQ z ()
- send :: Sender t => Socket z t -> [Flag] -> ByteString -> ZMQ z ()
- send' :: Sender t => Socket z t -> [Flag] -> ByteString -> ZMQ z ()
- sendMulti :: Sender t => Socket z t -> NonEmpty ByteString -> ZMQ z ()
- receive :: Receiver t => Socket z t -> ZMQ z ByteString
- receiveMulti :: Receiver t => Socket z t -> ZMQ z [ByteString]
- subscribe :: Subscriber t => Socket z t -> ByteString -> ZMQ z ()
- unsubscribe :: Subscriber t => Socket z t -> ByteString -> ZMQ z ()
- proxy :: Socket z a -> Socket z b -> Maybe (Socket z c) -> ZMQ z ()
- monitor :: [EventType] -> Socket z t -> ZMQ z (Bool -> IO (Maybe EventMsg))
- socketMonitor :: [EventType] -> String -> Socket z t -> ZMQ z ()
- poll :: (SocketLike s, MonadIO m) => Timeout -> [Poll s m] -> m [[Event]]
- affinity :: Socket z t -> ZMQ z Word64
- backlog :: Socket z t -> ZMQ z Int
- conflate :: Conflatable t => Socket z t -> ZMQ z Bool
- curvePublicKey :: KeyFormat f -> Socket z t -> ZMQ z ByteString
- curveSecretKey :: KeyFormat f -> Socket z t -> ZMQ z ByteString
- curveServerKey :: KeyFormat f -> Socket z t -> ZMQ z ByteString
- delayAttachOnConnect :: Socket z t -> ZMQ z Bool
- events :: Socket z t -> ZMQ z [Event]
- fileDescriptor :: Socket z t -> ZMQ z Fd
- identity :: Socket z t -> ZMQ z ByteString
- immediate :: Socket z t -> ZMQ z Bool
- ipv4Only :: Socket z t -> ZMQ z Bool
- ipv6 :: Socket z t -> ZMQ z Bool
- lastEndpoint :: Socket z t -> ZMQ z String
- linger :: Socket z t -> ZMQ z Int
- maxMessageSize :: Socket z t -> ZMQ z Int64
- mcastHops :: Socket z t -> ZMQ z Int
- mechanism :: Socket z t -> ZMQ z SecurityMechanism
- moreToReceive :: Socket z t -> ZMQ z Bool
- plainServer :: Socket z t -> ZMQ z Bool
- plainPassword :: Socket z t -> ZMQ z ByteString
- plainUserName :: Socket z t -> ZMQ z ByteString
- rate :: Socket z t -> ZMQ z Int
- receiveBuffer :: Socket z t -> ZMQ z Int
- receiveHighWM :: Socket z t -> ZMQ z Int
- receiveTimeout :: Socket z t -> ZMQ z Int
- reconnectInterval :: Socket z t -> ZMQ z Int
- reconnectIntervalMax :: Socket z t -> ZMQ z Int
- recoveryInterval :: Socket z t -> ZMQ z Int
- sendBuffer :: Socket z t -> ZMQ z Int
- sendHighWM :: Socket z t -> ZMQ z Int
- sendTimeout :: Socket z t -> ZMQ z Int
- tcpKeepAlive :: Socket z t -> ZMQ z Switch
- tcpKeepAliveCount :: Socket z t -> ZMQ z Int
- tcpKeepAliveIdle :: Socket z t -> ZMQ z Int
- tcpKeepAliveInterval :: Socket z t -> ZMQ z Int
- zapDomain :: Socket z t -> ZMQ z ByteString
- setAffinity :: Word64 -> Socket z t -> ZMQ z ()
- setBacklog :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setConflate :: Conflatable t => Bool -> Socket z t -> ZMQ z ()
- setCurveServer :: Bool -> Socket z t -> ZMQ z ()
- setCurvePublicKey :: KeyFormat f -> Restricted f ByteString -> Socket z t -> ZMQ z ()
- setCurveSecretKey :: KeyFormat f -> Restricted f ByteString -> Socket z t -> ZMQ z ()
- setCurveServerKey :: KeyFormat f -> Restricted f ByteString -> Socket z t -> ZMQ z ()
- setDelayAttachOnConnect :: Bool -> Socket z t -> ZMQ z ()
- setIdentity :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z ()
- setImmediate :: Bool -> Socket z t -> ZMQ z ()
- setIpv4Only :: Bool -> Socket z t -> ZMQ z ()
- setIpv6 :: Bool -> Socket z t -> ZMQ z ()
- setLinger :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z ()
- setMaxMessageSize :: Integral i => Restricted (Nneg1, Int64) i -> Socket z t -> ZMQ z ()
- setMcastHops :: Integral i => Restricted (N1, Int32) i -> Socket z t -> ZMQ z ()
- setPlainServer :: Bool -> Socket z t -> ZMQ z ()
- setPlainPassword :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z ()
- setPlainUserName :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z ()
- setProbeRouter :: SendProbe t => Bool -> Socket z t -> ZMQ z ()
- setRate :: Integral i => Restricted (N1, Int32) i -> Socket z t -> ZMQ z ()
- setReceiveBuffer :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setReceiveHighWM :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setReceiveTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z ()
- setReconnectInterval :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setReconnectIntervalMax :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setRecoveryInterval :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setReqCorrelate :: Bool -> Socket z Req -> ZMQ z ()
- setReqRelaxed :: Bool -> Socket z Req -> ZMQ z ()
- setRouterMandatory :: Bool -> Socket z Router -> ZMQ z ()
- setSendBuffer :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setSendHighWM :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z ()
- setSendTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z ()
- setTcpAcceptFilter :: Maybe ByteString -> Socket z t -> ZMQ z ()
- setTcpKeepAlive :: Switch -> Socket z t -> ZMQ z ()
- setTcpKeepAliveCount :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z ()
- setTcpKeepAliveIdle :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z ()
- setTcpKeepAliveInterval :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z ()
- setXPubVerbose :: Bool -> Socket z XPub -> ZMQ z ()
- setZapDomain :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z ()
- data ZMQError
- errno :: ZMQError -> Int
- source :: ZMQError -> String
- message :: ZMQError -> String
- liftIO :: MonadIO m => IO a -> m a
- restrict :: Restriction r v => v -> Restricted r v
- toRestricted :: Restriction r v => v -> Maybe (Restricted r v)
- waitRead :: Socket z t -> ZMQ z ()
- waitWrite :: Socket z t -> ZMQ z ()
- z85Encode :: MonadIO m => Restricted Div4 ByteString -> m ByteString
- z85Decode :: MonadIO m => Restricted Div5 ByteString -> m ByteString
- curveKeyPair :: MonadIO m => m (Restricted Div5 ByteString, Restricted Div5 ByteString)

# Type Definitions

data ZMQ z a #

The ZMQ monad is modeled after `ST` and encapsulates a `Context`. It uses the uninstantiated type variable `z` to distinguish different invoctions of `runZMQ` and to prevent unintented use of `Socket`s outside their scope. Cf. the paper of John Launchbury and Simon Peyton Jones Lazy Functional State Threads.

Instances

MonadBase IO (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods liftBase :: IO α -> ZMQ z α #
MonadBaseControl IO (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Associated Types type StM (ZMQ z) a :: * # Methods liftBaseWith :: (RunInBase (ZMQ z) IO -> IO a) -> ZMQ z a # restoreM :: StM (ZMQ z) a -> ZMQ z a #
Monad (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods (>>=) :: ZMQ z a -> (a -> ZMQ z b) -> ZMQ z b # (>>) :: ZMQ z a -> ZMQ z b -> ZMQ z b # return :: a -> ZMQ z a # fail :: String -> ZMQ z a #
Functor (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods fmap :: (a -> b) -> ZMQ z a -> ZMQ z b # (<$) :: a -> ZMQ z b -> ZMQ z a #
Applicative (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods pure :: a -> ZMQ z a # (<*>) :: ZMQ z (a -> b) -> ZMQ z a -> ZMQ z b # liftA2 :: (a -> b -> c) -> ZMQ z a -> ZMQ z b -> ZMQ z c # (*>) :: ZMQ z a -> ZMQ z b -> ZMQ z b # (<*) :: ZMQ z a -> ZMQ z b -> ZMQ z a #
MonadIO (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods liftIO :: IO a -> ZMQ z a #
MonadThrow (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods throwM :: Exception e => e -> ZMQ z a #
MonadCatch (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods catch :: Exception e => ZMQ z a -> (e -> ZMQ z a) -> ZMQ z a #
MonadMask (ZMQ z) # |
Instance details Defined in System.ZMQ4.Monadic Methods mask :: ((forall a. ZMQ z a -> ZMQ z a) -> ZMQ z b) -> ZMQ z b # uninterruptibleMask :: ((forall a. ZMQ z a -> ZMQ z a) -> ZMQ z b) -> ZMQ z b # generalBracket :: ZMQ z a -> (a -> ExitCase b -> ZMQ z c) -> (a -> ZMQ z b) -> ZMQ z (b, c) #
type StM (ZMQ z) a # |
Instance details Defined in System.ZMQ4.Monadic type StM (ZMQ z) a = a

data Socket z t #

The ZMQ socket, parameterised by `SocketType` and belonging to a particular `ZMQ` thread.

Instances

SocketLike (Socket z) # |
Instance details Defined in System.ZMQ4.Monadic Methods toSocket :: Socket z t -> Socket0 t #

data Flag #

Flags to apply on send operations (cf. man zmq_send)

Constructors

DontWait | ZMQ_DONTWAIT (Only relevant on Windows.)
SendMore | ZMQ_SNDMORE

Instances

Eq Flag # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: Flag -> Flag -> Bool # (/=) :: Flag -> Flag -> Bool #
Ord Flag # |
Instance details Defined in System.ZMQ4.Internal Methods compare :: Flag -> Flag -> Ordering # (<) :: Flag -> Flag -> Bool # (<=) :: Flag -> Flag -> Bool # (>) :: Flag -> Flag -> Bool # (>=) :: Flag -> Flag -> Bool # max :: Flag -> Flag -> Flag # min :: Flag -> Flag -> Flag #
Show Flag # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> Flag -> ShowS # show :: Flag -> String # showList :: [Flag] -> ShowS #

data Switch #

Configuration switch

Constructors

Default | Use default setting
On | Activate setting
Off | De-activate setting

Instances

Eq Switch # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: Switch -> Switch -> Bool # (/=) :: Switch -> Switch -> Bool #
Ord Switch # |
Instance details Defined in System.ZMQ4.Internal Methods compare :: Switch -> Switch -> Ordering # (<) :: Switch -> Switch -> Bool # (<=) :: Switch -> Switch -> Bool # (>) :: Switch -> Switch -> Bool # (>=) :: Switch -> Switch -> Bool # max :: Switch -> Switch -> Switch # min :: Switch -> Switch -> Switch #
Show Switch # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> Switch -> ShowS # show :: Switch -> String # showList :: [Switch] -> ShowS #

type Timeout = Int64 #

data Event #

Socket events.

Constructors

In | `ZMQ_POLLIN` (incoming messages)
Out | `ZMQ_POLLOUT` (outgoing messages, i.e. at least 1 byte can be written)
Err |
    ZMQ_POLLERR

Instances

Eq Event # |
Instance details Defined in System.ZMQ4 Methods (==) :: Event -> Event -> Bool # (/=) :: Event -> Event -> Bool #
Ord Event # |
Instance details Defined in System.ZMQ4 Methods compare :: Event -> Event -> Ordering # (<) :: Event -> Event -> Bool # (<=) :: Event -> Event -> Bool # (>) :: Event -> Event -> Bool # (>=) :: Event -> Event -> Bool # max :: Event -> Event -> Event # min :: Event -> Event -> Event #
Read Event # |
Instance details Defined in System.ZMQ4 Methods readsPrec :: Int -> ReadS Event # readList :: ReadS [Event] # readPrec :: ReadPrec Event # readListPrec :: ReadPrec [Event] #
Show Event # |
Instance details Defined in System.ZMQ4 Methods showsPrec :: Int -> Event -> ShowS # show :: Event -> String # showList :: [Event] -> ShowS #

data EventType #

Event types to monitor.

Constructors

ConnectedEvent |
ConnectDelayedEvent |
ConnectRetriedEvent |
ListeningEvent |
BindFailedEvent |
AcceptedEvent |
AcceptFailedEvent |
ClosedEvent |
CloseFailedEvent |
DisconnectedEvent |
MonitorStoppedEvent |
AllEvents |

Instances

Eq EventType # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: EventType -> EventType -> Bool # (/=) :: EventType -> EventType -> Bool #
Ord EventType # |
Instance details Defined in System.ZMQ4.Internal Methods compare :: EventType -> EventType -> Ordering # (<) :: EventType -> EventType -> Bool # (<=) :: EventType -> EventType -> Bool # (>) :: EventType -> EventType -> Bool # (>=) :: EventType -> EventType -> Bool # max :: EventType -> EventType -> EventType # min :: EventType -> EventType -> EventType #
Show EventType # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> EventType -> ShowS # show :: EventType -> String # showList :: [EventType] -> ShowS #

data EventMsg #

Event Message to receive when monitoring socket events.

Constructors

Connected !ByteString !Fd |
ConnectDelayed !ByteString |
ConnectRetried !ByteString !Int |
Listening !ByteString !Fd |
BindFailed !ByteString !Int |
Accepted !ByteString !Fd |
AcceptFailed !ByteString !Int |
Closed !ByteString !Fd |
CloseFailed !ByteString !Int |
Disconnected !ByteString !Fd |
MonitorStopped !ByteString !Int |

Instances

Eq EventMsg # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: EventMsg -> EventMsg -> Bool # (/=) :: EventMsg -> EventMsg -> Bool #
Show EventMsg # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> EventMsg -> ShowS # show :: EventMsg -> String # showList :: [EventMsg] -> ShowS #

data Poll s m where #

A `Poll` value contains the object to poll (a 0MQ socket or a file descriptor), the set of `Event`s which are of interest and--optionally-- a callback-function which is invoked iff the set of interested events overlaps with the actual events.

Constructors

Sock :: s t -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m |
File :: Fd -> [Event] -> Maybe ([Event] -> m ()) -> Poll s m |

data KeyFormat a where #

Constructors

BinaryFormat :: KeyFormat Div4 |
TextFormat :: KeyFormat Div5 |

Instances

Eq (KeyFormat a) # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: KeyFormat a -> KeyFormat a -> Bool # (/=) :: KeyFormat a -> KeyFormat a -> Bool #
Show (KeyFormat a) # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> KeyFormat a -> ShowS # show :: KeyFormat a -> String # showList :: [KeyFormat a] -> ShowS #

data SecurityMechanism #

Constructors

Null |
Plain |
Curve |

Instances

Eq SecurityMechanism # |
Instance details Defined in System.ZMQ4.Internal Methods (==) :: SecurityMechanism -> SecurityMechanism -> Bool # (/=) :: SecurityMechanism -> SecurityMechanism -> Bool #
Show SecurityMechanism # |
Instance details Defined in System.ZMQ4.Internal Methods showsPrec :: Int -> SecurityMechanism -> ShowS # show :: SecurityMechanism -> String # showList :: [SecurityMechanism] -> ShowS #

## Socket type-classes

class SocketType a #

Socket types.

Minimal complete definition

zmqSocketType

Instances

SocketType Stream # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Stream -> ZMQSocketType #
SocketType Push # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Push -> ZMQSocketType #
SocketType Pull # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pull -> ZMQSocketType #
SocketType Router # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Router -> ZMQSocketType #
SocketType Dealer # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Dealer -> ZMQSocketType #
SocketType Rep # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Rep -> ZMQSocketType #
SocketType Req # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Req -> ZMQSocketType #
SocketType XSub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XSub -> ZMQSocketType #
SocketType XPub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XPub -> ZMQSocketType #
SocketType Sub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Sub -> ZMQSocketType #
SocketType Pub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pub -> ZMQSocketType #
SocketType Pair # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pair -> ZMQSocketType #

class Sender a #

Sockets which can `send`.

Instances

Sender Stream # |
Instance details Defined in System.ZMQ4
Sender Push # |
Instance details Defined in System.ZMQ4
Sender Router # |
Instance details Defined in System.ZMQ4
Sender Dealer # |
Instance details Defined in System.ZMQ4
Sender Rep # |
Instance details Defined in System.ZMQ4
Sender Req # |
Instance details Defined in System.ZMQ4
Sender XSub # |
Instance details Defined in System.ZMQ4
Sender XPub # |
Instance details Defined in System.ZMQ4
Sender Pub # |
Instance details Defined in System.ZMQ4
Sender Pair # |
Instance details Defined in System.ZMQ4

class Receiver a #

Sockets which can `receive`.

Instances

Receiver Stream # |
Instance details Defined in System.ZMQ4
Receiver Pull # |
Instance details Defined in System.ZMQ4
Receiver Router # |
Instance details Defined in System.ZMQ4
Receiver Dealer # |
Instance details Defined in System.ZMQ4
Receiver Rep # |
Instance details Defined in System.ZMQ4
Receiver Req # |
Instance details Defined in System.ZMQ4
Receiver XSub # |
Instance details Defined in System.ZMQ4
Receiver XPub # |
Instance details Defined in System.ZMQ4
Receiver Sub # |
Instance details Defined in System.ZMQ4
Receiver Pair # |
Instance details Defined in System.ZMQ4

class Subscriber a #

Sockets which can `subscribe`.

Instances

Subscriber Sub # |
Instance details Defined in System.ZMQ4

class SocketLike s #

Minimal complete definition

toSocket

Instances

SocketLike Socket # |
Instance details Defined in System.ZMQ4.Internal Methods toSocket :: Socket t -> Socket t #
SocketLike (Socket z) # |
Instance details Defined in System.ZMQ4.Monadic Methods toSocket :: Socket z t -> Socket0 t #

class Conflatable a #

Sockets which can be `conflate`d.

Instances

Conflatable Push # |
Instance details Defined in System.ZMQ4
Conflatable Pull # |
Instance details Defined in System.ZMQ4
Conflatable Dealer # |
Instance details Defined in System.ZMQ4
Conflatable Sub # |
Instance details Defined in System.ZMQ4
Conflatable Pub # |
Instance details Defined in System.ZMQ4

class SendProbe a #

Sockets which can send probes (cf. `setProbeRouter`).

Instances

SendProbe Router # |
Instance details Defined in System.ZMQ4
SendProbe Dealer # |
Instance details Defined in System.ZMQ4
SendProbe Req # |
Instance details Defined in System.ZMQ4

## Socket Types

data Pair #

ZMQ_PAIR

Constructors

Pair |

Instances

Eq Pair # |
Instance details Defined in System.ZMQ4 Methods (==) :: Pair -> Pair -> Bool # (/=) :: Pair -> Pair -> Bool #
Generic Pair # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Pair :: * -> * # Methods from :: Pair -> Rep Pair x # to :: Rep Pair x -> Pair #
SocketType Pair # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pair -> ZMQSocketType #
Receiver Pair # |
Instance details Defined in System.ZMQ4
Sender Pair # |
Instance details Defined in System.ZMQ4
type Rep Pair # |
Instance details Defined in System.ZMQ4 type Rep Pair = D1 (MetaData "Pair" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Pair" PrefixI False) (U1 :: * -> *))

data Pub #

ZMQ_PUB

Constructors

Pub |

Instances

Eq Pub # |
Instance details Defined in System.ZMQ4 Methods (==) :: Pub -> Pub -> Bool # (/=) :: Pub -> Pub -> Bool #
Generic Pub # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Pub :: * -> * # Methods from :: Pub -> Rep Pub x # to :: Rep Pub x -> Pub #
SocketType Pub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pub -> ZMQSocketType #
Conflatable Pub # |
Instance details Defined in System.ZMQ4
Sender Pub # |
Instance details Defined in System.ZMQ4
type Rep Pub # |
Instance details Defined in System.ZMQ4 type Rep Pub = D1 (MetaData "Pub" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Pub" PrefixI False) (U1 :: * -> *))

data Sub #

ZMQ_SUB

Constructors

Sub |

Instances

Eq Sub # |
Instance details Defined in System.ZMQ4 Methods (==) :: Sub -> Sub -> Bool # (/=) :: Sub -> Sub -> Bool #
Generic Sub # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Sub :: * -> * # Methods from :: Sub -> Rep Sub x # to :: Rep Sub x -> Sub #
SocketType Sub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Sub -> ZMQSocketType #
Conflatable Sub # |
Instance details Defined in System.ZMQ4
Receiver Sub # |
Instance details Defined in System.ZMQ4
Subscriber Sub # |
Instance details Defined in System.ZMQ4
type Rep Sub # |
Instance details Defined in System.ZMQ4 type Rep Sub = D1 (MetaData "Sub" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Sub" PrefixI False) (U1 :: * -> *))

data XPub #

ZMQ_XPUB

Constructors

XPub |

Instances

Eq XPub # |
Instance details Defined in System.ZMQ4 Methods (==) :: XPub -> XPub -> Bool # (/=) :: XPub -> XPub -> Bool #
Generic XPub # |
Instance details Defined in System.ZMQ4 Associated Types type Rep XPub :: * -> * # Methods from :: XPub -> Rep XPub x # to :: Rep XPub x -> XPub #
SocketType XPub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XPub -> ZMQSocketType #
Receiver XPub # |
Instance details Defined in System.ZMQ4
Sender XPub # |
Instance details Defined in System.ZMQ4
type Rep XPub # |
Instance details Defined in System.ZMQ4 type Rep XPub = D1 (MetaData "XPub" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "XPub" PrefixI False) (U1 :: * -> *))

data XSub #

ZMQ_XSUB

Constructors

XSub |

Instances

Eq XSub # |
Instance details Defined in System.ZMQ4 Methods (==) :: XSub -> XSub -> Bool # (/=) :: XSub -> XSub -> Bool #
Generic XSub # |
Instance details Defined in System.ZMQ4 Associated Types type Rep XSub :: * -> * # Methods from :: XSub -> Rep XSub x # to :: Rep XSub x -> XSub #
SocketType XSub # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: XSub -> ZMQSocketType #
Receiver XSub # |
Instance details Defined in System.ZMQ4
Sender XSub # |
Instance details Defined in System.ZMQ4
type Rep XSub # |
Instance details Defined in System.ZMQ4 type Rep XSub = D1 (MetaData "XSub" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "XSub" PrefixI False) (U1 :: * -> *))

data Req #

ZMQ_REQ

Constructors

Req |

Instances

Eq Req # |
Instance details Defined in System.ZMQ4 Methods (==) :: Req -> Req -> Bool # (/=) :: Req -> Req -> Bool #
Generic Req # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Req :: * -> * # Methods from :: Req -> Rep Req x # to :: Rep Req x -> Req #
SocketType Req # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Req -> ZMQSocketType #
SendProbe Req # |
Instance details Defined in System.ZMQ4
Receiver Req # |
Instance details Defined in System.ZMQ4
Sender Req # |
Instance details Defined in System.ZMQ4
type Rep Req # |
Instance details Defined in System.ZMQ4 type Rep Req = D1 (MetaData "Req" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Req" PrefixI False) (U1 :: * -> *))

data Rep #

ZMQ_REP

Constructors

Rep |

Instances

Eq Rep # |
Instance details Defined in System.ZMQ4 Methods (==) :: Rep -> Rep -> Bool # (/=) :: Rep -> Rep -> Bool #
Generic Rep # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Rep :: * -> * # Methods from :: Rep -> Rep0 Rep x # to :: Rep0 Rep x -> Rep #
SocketType Rep # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Rep -> ZMQSocketType #
Receiver Rep # |
Instance details Defined in System.ZMQ4
Sender Rep # |
Instance details Defined in System.ZMQ4
type Rep Rep # |
Instance details Defined in System.ZMQ4 type Rep Rep = D1 (MetaData "Rep" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Rep" PrefixI False) (U1 :: * -> *))

data Dealer #

ZMQ_DEALER

Constructors

Dealer |

Instances

Eq Dealer # |
Instance details Defined in System.ZMQ4 Methods (==) :: Dealer -> Dealer -> Bool # (/=) :: Dealer -> Dealer -> Bool #
Generic Dealer # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Dealer :: * -> * # Methods from :: Dealer -> Rep Dealer x # to :: Rep Dealer x -> Dealer #
SocketType Dealer # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Dealer -> ZMQSocketType #
SendProbe Dealer # |
Instance details Defined in System.ZMQ4
Conflatable Dealer # |
Instance details Defined in System.ZMQ4
Receiver Dealer # |
Instance details Defined in System.ZMQ4
Sender Dealer # |
Instance details Defined in System.ZMQ4
type Rep Dealer # |
Instance details Defined in System.ZMQ4 type Rep Dealer = D1 (MetaData "Dealer" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Dealer" PrefixI False) (U1 :: * -> *))

data Router #

ZMQ_ROUTER

Constructors

Router |

Instances

Eq Router # |
Instance details Defined in System.ZMQ4 Methods (==) :: Router -> Router -> Bool # (/=) :: Router -> Router -> Bool #
Generic Router # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Router :: * -> * # Methods from :: Router -> Rep Router x # to :: Rep Router x -> Router #
SocketType Router # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Router -> ZMQSocketType #
SendProbe Router # |
Instance details Defined in System.ZMQ4
Receiver Router # |
Instance details Defined in System.ZMQ4
Sender Router # |
Instance details Defined in System.ZMQ4
type Rep Router # |
Instance details Defined in System.ZMQ4 type Rep Router = D1 (MetaData "Router" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Router" PrefixI False) (U1 :: * -> *))

data Pull #

ZMQ_PULL

Constructors

Pull |

Instances

Eq Pull # |
Instance details Defined in System.ZMQ4 Methods (==) :: Pull -> Pull -> Bool # (/=) :: Pull -> Pull -> Bool #
Generic Pull # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Pull :: * -> * # Methods from :: Pull -> Rep Pull x # to :: Rep Pull x -> Pull #
SocketType Pull # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Pull -> ZMQSocketType #
Conflatable Pull # |
Instance details Defined in System.ZMQ4
Receiver Pull # |
Instance details Defined in System.ZMQ4
type Rep Pull # |
Instance details Defined in System.ZMQ4 type Rep Pull = D1 (MetaData "Pull" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Pull" PrefixI False) (U1 :: * -> *))

data Push #

ZMQ_PUSH

Constructors

Push |

Instances

Eq Push # |
Instance details Defined in System.ZMQ4 Methods (==) :: Push -> Push -> Bool # (/=) :: Push -> Push -> Bool #
Generic Push # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Push :: * -> * # Methods from :: Push -> Rep Push x # to :: Rep Push x -> Push #
SocketType Push # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Push -> ZMQSocketType #
Conflatable Push # |
Instance details Defined in System.ZMQ4
Sender Push # |
Instance details Defined in System.ZMQ4
type Rep Push # |
Instance details Defined in System.ZMQ4 type Rep Push = D1 (MetaData "Push" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Push" PrefixI False) (U1 :: * -> *))

data Stream #

ZMQ_STREAM

Constructors

Stream |

Instances

Eq Stream # |
Instance details Defined in System.ZMQ4 Methods (==) :: Stream -> Stream -> Bool # (/=) :: Stream -> Stream -> Bool #
Generic Stream # |
Instance details Defined in System.ZMQ4 Associated Types type Rep Stream :: * -> * # Methods from :: Stream -> Rep Stream x # to :: Rep Stream x -> Stream #
SocketType Stream # |
Instance details Defined in System.ZMQ4 Methods zmqSocketType :: Stream -> ZMQSocketType #
Receiver Stream # |
Instance details Defined in System.ZMQ4
Sender Stream # |
Instance details Defined in System.ZMQ4
type Rep Stream # |
Instance details Defined in System.ZMQ4 type Rep Stream = D1 (MetaData "Stream" "System.ZMQ4" "zeromq4-haskell-0.8.0-HhCj2pXaHIhEYYU3EDu02c" False) (C1 (MetaCons "Stream" PrefixI False) (U1 :: * -> *))

# General Operations

version :: ZMQ z (Int, Int, Int) #

runZMQ :: MonadIO m => (forall z. ZMQ z a) -> m a #

Return the value computed by the given `ZMQ` monad. Rank-2 polymorphism is used to prevent leaking of `z`. An invocation of `runZMQ` will internally create a `Context` and all actions are executed relative to this context. On finish the context will be disposed, but see `async`.

async :: ZMQ z a -> ZMQ z (Async a) #

Run the given `ZMQ` computation asynchronously, i.e. this function runs the computation in a new thread using `async`. N.B. reference counting is used to prolong the lifetime of the `Context` encapsulated in `ZMQ` as necessary, e.g.:

    runZMQ $ do
        s <- socket Pair
        async $ do
            liftIO (threadDelay 10000000)
            identity s >>= liftIO . print

Here, `runZMQ` will finish before the code section in `async`, but due to reference counting, the `Context` will only be disposed after `async` finishes as well.

socket :: SocketType t => t -> ZMQ z (Socket z t) #

# ZMQ Options (Read)

ioThreads :: ZMQ z Word #

maxSockets :: ZMQ z Word #

# ZMQ Options (Write)

setIoThreads :: Word -> ZMQ z () #

setMaxSockets :: Word -> ZMQ z () #

# Socket operations

close :: Socket z t -> ZMQ z () #

bind :: Socket z t -> String -> ZMQ z () #

unbind :: Socket z t -> String -> ZMQ z () #

connect :: Socket z t -> String -> ZMQ z () #

disconnect :: Socket z t -> String -> ZMQ z () #

send :: Sender t => Socket z t -> [Flag] -> ByteString -> ZMQ z () #

send' :: Sender t => Socket z t -> [Flag] -> ByteString -> ZMQ z () #

sendMulti :: Sender t => Socket z t -> NonEmpty ByteString -> ZMQ z () #

receive :: Receiver t => Socket z t -> ZMQ z ByteString #

receiveMulti :: Receiver t => Socket z t -> ZMQ z [ByteString] #

subscribe :: Subscriber t => Socket z t -> ByteString -> ZMQ z () #

unsubscribe :: Subscriber t => Socket z t -> ByteString -> ZMQ z () #

proxy :: Socket z a -> Socket z b -> Maybe (Socket z c) -> ZMQ z () #

monitor :: [EventType] -> Socket z t -> ZMQ z (Bool -> IO (Maybe EventMsg)) #

socketMonitor :: [EventType] -> String -> Socket z t -> ZMQ z () #

poll :: (SocketLike s, MonadIO m) => Timeout -> [Poll s m] -> m [[Event]] #

Polls for events on the given `Poll` descriptors. Returns a list of events per descriptor which have occured. (cf. zmq_poll)

# Socket Options (Read)

affinity :: Socket z t -> ZMQ z Word64 #

backlog :: Socket z t -> ZMQ z Int #

conflate :: Conflatable t => Socket z t -> ZMQ z Bool #

curvePublicKey :: KeyFormat f -> Socket z t -> ZMQ z ByteString #

curveSecretKey :: KeyFormat f -> Socket z t -> ZMQ z ByteString #

curveServerKey :: KeyFormat f -> Socket z t -> ZMQ z ByteString #

delayAttachOnConnect :: Socket z t -> ZMQ z Bool #

Deprecated: Use immediate

events :: Socket z t -> ZMQ z [Event] #

fileDescriptor :: Socket z t -> ZMQ z Fd #

identity :: Socket z t -> ZMQ z ByteString #

immediate :: Socket z t -> ZMQ z Bool #

ipv4Only :: Socket z t -> ZMQ z Bool #

Deprecated: Use ipv6

ipv6 :: Socket z t -> ZMQ z Bool #

lastEndpoint :: Socket z t -> ZMQ z String #

linger :: Socket z t -> ZMQ z Int #

maxMessageSize :: Socket z t -> ZMQ z Int64 #

mcastHops :: Socket z t -> ZMQ z Int #

mechanism :: Socket z t -> ZMQ z SecurityMechanism #

moreToReceive :: Socket z t -> ZMQ z Bool #

plainServer :: Socket z t -> ZMQ z Bool #

plainPassword :: Socket z t -> ZMQ z ByteString #

plainUserName :: Socket z t -> ZMQ z ByteString #

rate :: Socket z t -> ZMQ z Int #

receiveBuffer :: Socket z t -> ZMQ z Int #

receiveHighWM :: Socket z t -> ZMQ z Int #

receiveTimeout :: Socket z t -> ZMQ z Int #

reconnectInterval :: Socket z t -> ZMQ z Int #

reconnectIntervalMax :: Socket z t -> ZMQ z Int #

recoveryInterval :: Socket z t -> ZMQ z Int #

sendBuffer :: Socket z t -> ZMQ z Int #

sendHighWM :: Socket z t -> ZMQ z Int #

sendTimeout :: Socket z t -> ZMQ z Int #

tcpKeepAlive :: Socket z t -> ZMQ z Switch #

tcpKeepAliveCount :: Socket z t -> ZMQ z Int #

tcpKeepAliveIdle :: Socket z t -> ZMQ z Int #

tcpKeepAliveInterval :: Socket z t -> ZMQ z Int #

zapDomain :: Socket z t -> ZMQ z ByteString #

# Socket Options (Write)

setAffinity :: Word64 -> Socket z t -> ZMQ z () #

setBacklog :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setConflate :: Conflatable t => Bool -> Socket z t -> ZMQ z () #

setCurveServer :: Bool -> Socket z t -> ZMQ z () #

setCurvePublicKey :: KeyFormat f -> Restricted f ByteString -> Socket z t -> ZMQ z () #

setCurveSecretKey :: KeyFormat f -> Restricted f ByteString -> Socket z t -> ZMQ z () #

setCurveServerKey :: KeyFormat f -> Restricted f ByteString -> Socket z t -> ZMQ z () #

setDelayAttachOnConnect :: Bool -> Socket z t -> ZMQ z () #

Deprecated: Use setImmediate

setIdentity :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z () #

setImmediate :: Bool -> Socket z t -> ZMQ z () #

setIpv4Only :: Bool -> Socket z t -> ZMQ z () #

Deprecated: Use setIpv6

setIpv6 :: Bool -> Socket z t -> ZMQ z () #

setLinger :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setMaxMessageSize :: Integral i => Restricted (Nneg1, Int64) i -> Socket z t -> ZMQ z () #

setMcastHops :: Integral i => Restricted (N1, Int32) i -> Socket z t -> ZMQ z () #

setPlainServer :: Bool -> Socket z t -> ZMQ z () #

setPlainPassword :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z () #

setPlainUserName :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z () #

setProbeRouter :: SendProbe t => Bool -> Socket z t -> ZMQ z () #

setRate :: Integral i => Restricted (N1, Int32) i -> Socket z t -> ZMQ z () #

setReceiveBuffer :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setReceiveHighWM :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setReceiveTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setReconnectInterval :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setReconnectIntervalMax :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setRecoveryInterval :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setReqCorrelate :: Bool -> Socket z Req -> ZMQ z () #

setReqRelaxed :: Bool -> Socket z Req -> ZMQ z () #

setRouterMandatory :: Bool -> Socket z Router -> ZMQ z () #

setSendBuffer :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setSendHighWM :: Integral i => Restricted (N0, Int32) i -> Socket z t -> ZMQ z () #

setSendTimeout :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setTcpAcceptFilter :: Maybe ByteString -> Socket z t -> ZMQ z () #

setTcpKeepAlive :: Switch -> Socket z t -> ZMQ z () #

setTcpKeepAliveCount :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setTcpKeepAliveIdle :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setTcpKeepAliveInterval :: Integral i => Restricted (Nneg1, Int32) i -> Socket z t -> ZMQ z () #

setXPubVerbose :: Bool -> Socket z XPub -> ZMQ z () #

setZapDomain :: Restricted (N1, N254) ByteString -> Socket z t -> ZMQ z () #

# Error Handling

data ZMQError #

ZMQError encapsulates information about errors, which occur when using the native 0MQ API, such as error number and message.

Instances

Eq ZMQError # |
Instance details Defined in System.ZMQ4.Internal.Error Methods (==) :: ZMQError -> ZMQError -> Bool # (/=) :: ZMQError -> ZMQError -> Bool #
Ord ZMQError # |
Instance details Defined in System.ZMQ4.Internal.Error Methods compare :: ZMQError -> ZMQError -> Ordering # (<) :: ZMQError -> ZMQError -> Bool # (<=) :: ZMQError -> ZMQError -> Bool # (>) :: ZMQError -> ZMQError -> Bool # (>=) :: ZMQError -> ZMQError -> Bool # max :: ZMQError -> ZMQError -> ZMQError # min :: ZMQError -> ZMQError -> ZMQError #
Show ZMQError # |
Instance details Defined in System.ZMQ4.Internal.Error Methods showsPrec :: Int -> ZMQError -> ShowS # show :: ZMQError -> String # showList :: [ZMQError] -> ShowS #
Exception ZMQError # |
Instance details Defined in System.ZMQ4.Internal.Error Methods toException :: ZMQError -> SomeException # fromException :: SomeException -> Maybe ZMQError # displayException :: ZMQError -> String #

errno :: ZMQError -> Int #

Error number value.

source :: ZMQError -> String #

Source where this error originates from.

message :: ZMQError -> String #

Actual error message.

# Re-exports

liftIO :: MonadIO m => IO a -> m a #

Lift a computation from the `IO` monad.

restrict :: Restriction r v => v -> Restricted r v #

Create a restricted value. If the given value does not satisfy the restrictions, a modified variant is used instead, e.g. if an integer is larger than the upper bound, the upper bound value is used.

toRestricted :: Restriction r v => v -> Maybe (Restricted r v) #

Create a restricted value. Returns `Nothing` if the given value does not satisfy all restrictions.

# Low-level Functions

waitRead :: Socket z t -> ZMQ z () #

waitWrite :: Socket z t -> ZMQ z () #

z85Encode :: MonadIO m => Restricted Div4 ByteString -> m ByteString #

z85Decode :: MonadIO m => Restricted Div5 ByteString -> m ByteString #

curveKeyPair :: MonadIO m => m (Restricted Div5 ByteString, Restricted Div5 ByteString) #

Generate a new curve key pair. (cf. zmq_curve_keypair)