Fastest. Messaging. Ever.

What's messaging?

Getting two apps 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 apps 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. Some of these systems even agree on standard protocols like AMQP. 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's ØMQ?

  • Our mission with ØMQ ("ZeroMQ") is to build the fastest messaging ever. The way to get performance is to optimise the whole software and hardware stack together. So, we are developing ØMQ closely with major hardware firms.
  • ØMQ is already very fast. We're getting 30μsec end-to-end latencies and over 3 million messages a second today.
  • ØMQ is fully open sourced GPLv3-licensed software written in C++.
  • ØMQ is a project in progress. Download the code, read the whitepaper and test results, or join the project if you are a messaging fanatic.

Who are we?

ØMQ is a collaboration between a group of firms, namely FastMQ (which brings experience of the financial messaging market), iMatix (which brings the AMQP expertise), Intel (which brings hardware expertise) and other firms with hardware, operating system, network, and application expertise. FastMQ Inc. unifies all copyrights on the code.

Read more about it

Join the ØMQ Community

ØMQ Goals

  • Built on standards: for frameworks, protocols, and community.
  • Demolishes any network, from 10Gb Ethernet, to 4X IB.
  • Transfers ordered stream of 2M messages a second on a 1Gb network with no batching involved.
  • End-to-end latency under twenty μsec over TCP using custom network hardware and drivers.
  • Beats any commercial product: faster, more portable, more reliable, more usable.
  • Built for the community: GPLv3 software developed in an active community.
  • Designed for the real world: stocks, grids, real time data, streams, video, gaming.
  • Runs everywhere: the smallest devices, all operating systems, all languages.
  • Fully distributed: no central servers to crash, millions of WAN and LAN nodes.
  • Extensible framework: kernel-style drivers for custom hardware, protocols or applications.

Development principles

  • Keep it simple: Developer should be able to start using ØMQ in half an hour and master the API completely in one day.
  • Keep it thin: One line of code removed is worth of ten lines of code added.
  • Focus on performance: Spend 90% of your time doing measurement; write the code in the remaining time.
  • Focus on quality: Don't be afraid to scrap your code and rewrite it from scratch; after several iterations, nice design will emerge.
  • No creeping featurism: If a feature can be implemented on the top of ØMQ, get rid of it in the product itself.
  • No mercy: Don't hide errors. If there is an error, crash the application. ØMQ should be in perfectly consistent state 100% of the time.
  • Cede control to user: Don't use any resources (threads, memory, network interfaces etc.) unless user explicitly asks you to do so.
  • And last but not least, make it beautiful: Adhere to the draconian coding and documentation standards used in the project.