Fastest. Messaging. Ever.

What is messaging?

Getting two applications to talk is always a challenge. They have to agree on what the data looks like. And what it means. They have to agree on how the data is organised into a message. XML, binary, or something else? They have to agree how to speak to each other. They have to agree on security. They have to agree how to connect, across what networks. They need to queue messages that can't be delivered immediately. They need to detect and handle errors properly.

Many applications try to solve these problems from scratch. But you can also buy big, expensive, slow packages called messaging systems that handle a lot of these jobs for you. Using a messaging system usually costs a lot but it gives you the power to bring apps together.

Messaging used to be for big wealthy firms only, and the really fast messaging systems are still very expensive. This situation is changing.

What is ØMQ?

  • ØMQ is a lightweight messaging implementation with a socket-like API.
  • ØMQ sends an receives messages asynchronously (a.k.a. "message queueing").
  • ØMQ supports different messaging patterns such as point-to-point, publish-subscribe, request-reply, paralellized pipeline and more.
  • ØMQ is already very fast. We're getting 13.4 microseconds end-to-end latencies and up to 4,100,000 messages a second today.
  • ØMQ is very thin. The core requires just a couple of pages in resident memory.
  • ØMQ is fully open source, LGPL-licensed software written in C++.
  • ØMQ provides bindings for many different languages (see the "Languages" section on left).
  • ØMQ supports different transport protocols: TCP, PGM, IPC, and more.
  • ØMQ runs on HP-UX, Linux, Mac OS X, NetBSD, OpenVMS, Solaris, Windows, and more.
  • ØMQ supports microarchitectures such as x86, AMD64, SPARC, IA-64, ARM and more.
  • ØMQ is fully distributed: no central servers to crash, millions of WAN and LAN nodes.

Who are we?

ØMQ is a product of iMatix built the help of a community of experts and partners, including Intel (which brings hardware expertise), Novell, and other firms with hardware, operating system, network, and application expertise. Contact us...

Recent highlights

  • March 11th, 2010: Test showing impact of message copying on latency were provided by Michael Santy. The tests are also useful to get an idea of performance of ØMQ/2.0 on top on InfiniBand. See the results here.
  • Febrary 26th, 2010: Improved Python binding (support for polling etc.) was created by Brian Granger. Check it here.
  • February 20th, 2010: Lua binding was created by Aleksey Yeschenko. You can check it here.
  • February 18th, 2010: Recorded Connect community webinar is available here. Slides from the webinar can be downloaded from here.
  • February 16th, 2010: Thanks to Adrian von Bidder and Peter Busser, Debian packages for ØMQ are now available.
  • February 10th, 2010: Webinar on messaging in general and ØMQ in particular will be held on February 18th, 5:00PM GMT. You can register for the webinar here.
  • January 29th, 2010: A demonstration of sending video over ØMQ created by Martin Lucina is available here.
  • January 23rd, 2010: Haskell language binding for ØMQ/2.0 was created by Toralf Wittner. The package can be found here.
  • January 21st, 2010: Linux Weekly News have published an article about ØMQ. Check it here.
  • January 17th, 2010: ØMQ/2.0-beta2 is released. Aside of several bugfixes it provides new IPC (inter-process) transport that significantly reduces latency when passing messages between processes on the same box.
  • January 7th, 2010: ØMQ/2.0-beta1 is released. It includes Common Lisp API, zero-copy for large messages and more.

More highlights...

Mailing list

Recent discussion from the zeromq-dev mailing list: