zmq

ZeroMQ 4 wrapper

Wrapper score 15/100 · tests present · no docs generated

Wraps a native library — check OS Compatibility below for platform-specific linking notes.

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:23

Installation

nimble install zmq
choosenim install zmq
git clone https://github.com/nim-lang/nim-zmq

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
zmq - - - - - - -

Source

Repository https://github.com/nim-lang/nim-zmq
Homepage https://github.com/nim-lang/nim-zmq
Registry Source nimble_official

README

Nim ZeroMQ wrapper

example workflow

Note: This wrapper was written and tested with ZeroMQ version 4.2.0. Older versions may not work.

ZeroMQ API Reference can be found here : http://api.zeromq.org/4-2:_start

Installation

$ nimble install zmq

Examples

Simple client/server

server

  import zmq

  var responder = zmq.listen("tcp://127.0.0.1:5555", REP)
  for i in 0..10:
    var request = receive(responder)
    echo("Received: ", request)
    send(responder, "World")
  close(responder)

client

  import zmq

  var requester = zmq.connect("tcp://127.0.0.1:5555", REQ)
  for i in 0..10:
    send(requester, "Hello")
    var reply = receive(requester)
    echo("Received: ", reply)
  close(requester)

Advanced usage

For more examples demonstrating many functionalities and patterns that ZMQ offers, see the tests/ and examples/ folder.

The examples are commented to better understand how zmq works.

Log EAGAIN errno

Sometimes EAGAIN error happens in ZMQ context; typically this is a non-ctritical error that can be ignored. Nonetheless, if you desire to log or display such error, it is possible to enable it using the enableLogEagain and disable it with disableLogEagain.

Setting default flag as DONTWAIT

The default flag passed to send / receive is NOFLAGS. This can be overriden by defining -d:defaultFlagDontWait