/erlzmq

Erlang binding for 0MQ (v2)

Primary LanguageCMIT LicenseMIT

erlzmq

NIF based Erlang bindings for the ZeroMQ messaging library.

Forked from the erlzmq2 project.

Copyright (c) 2019 erlang solutions ltd

Copyright (c) 2011 Yurii Rashkovskii, Evax Software and Michael Truog

Overview

The erlzmq application provides high-performance NIF based Erlang bindings for the ZeroMQ messaging library.

Downloading

The erlzmq source code can be found on GitHub

$ git clone http://github.com/esl/erlzmq.git

Building

Please note that to behave properly on your system ZeroMQ might require some tuning.

Install zeromq-dev package for your distro.

For examples see .travis*’ and verification/Dockerfile*’.

Build the code

$ rebar3 compile

Build the docs

$ rebar3 docs

Run the test suite

$ rebar3 eunit

Run the benchmarks (requires python and matplotlib)

TODO

This will run performance tests and output png graphs in the graphs directory.

Architecture

The bindings use Erlang's NIF (native implemented functions) interface to achieve the best performance. One extra OS thread and one pair of inproc sockets by context are used to simulate blocking recv calls without affecting the Erlang virtual machine's responsiveness.

License

The project is released under the MIT license.