Introduction to network programming with ZeroMQ

ZeroMQ is a messaging and network communications library.

Why do I want to use ZeroMq? There are several reasons:

  • By constructing our application from multiple processes that communicate via ZeroMQ, we gain the ability to make use of multi-CPU and multi-core devices (even when those processes run on a single machine.
  • We can make use of a variety of devices, for example, desktop machines, laptop machines, single board and embedded computers (such as the Raspberry Pi), and set-top boxes.
  • ZeroMQ has excellent support for Python and Node.js and a number of other languages, too, which means that I can write my code in one of my favorite languages.

An alternative -- Erlang is an interesting and powerful choice for constructing applications out of multiple communicating processes. And, if fact, Erlang is available on the Raspberry Pi under Raspian GNU/Linux.