Fastest. Messaging. Ever.

I'm new to ØMQ...

fig2.png

What's ØMQ?
ØMQ looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry whole messages across various transports like inproc, IPC, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, pubsub, task distribution, and request-reply. It's fast and small enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has over twenty language APIs and runs on most operating systems. ØMQ is open source and fully supported by iMatix.

A New Scalability Layer
ØMQ is a new layer in the networking stack, a scalability layer that spreads the load of a distributed system so that it can support arbitrarily large applications. ØMQ defines the overall topology of the distributed system rather than simple point-to-point communication. 0MQ applications are concurrent without locks, and elastic over any number of threads, cores, and boxes.

The ØMQ Community
Dozens of us worked together for three years to build ØMQ (also known as ZeroMQ or 0MQ) as free software. You too can contribute: language bindings, tutorials, examples, new ideas and better algorithms. Join the list to get started.

Getting Started
Download ØMQ and watch this video introduction by Oliver Smith. The Reference Manual is the core reference. This article is an excellent introduction. The User Guide is a work in progress but helpful for beginners.

Most Popular (See more...)

1281559148|%e %B: ØMQ - The Guide (7 votes)
1281454190|%e %B: An Introduction to ØMQ (3 votes)
1283103474|%e %B: Most Popular Pages (2 votes)
1282832810|%e %B: Using XREQ and XREP Sockets (2 votes)
1283360197|%e %B: Switch or Broker (1 votes)
1280941633|%e %B: The Guide Talk Page (1 votes)

The Bullet Points

  • ØMQ is a distributed messaging engine with a socket-style API.
  • Allows many-to-many connections between sockets and handles these automatically.
  • Supports patterns such as pub-sub, request-reply, and pipeline.
  • Connects your tasks over inproc, IPC, TCP, and PGM using the same API.
  • Is fast. 13.4 usec end-to-end latencies and over 8M messages a second today (InfiniBand).
  • Is thin. The core requires just a couple of pages in resident memory.
  • Runs on HP-UX, Linux, Mac OS X, NetBSD, OpenVMS, Solaris, Windows, AIX, and more.
  • Supports microarchitectures such as x86, AMD64, SPARC, IA-64, ARM and more.
  • Is fully distributed: no central servers to crash, millions of WAN and LAN nodes.

Compare To

  • TCP: message based, messaging patterns rather than stream of bytes.
  • XMPP: simpler, faster, and more low-level. Jabber could be built on ØMQ.
  • AMQP: 100x faster to do the same work and with no brokers (and 278 pages less spec).
  • IPC: we abstract across boxes not only a single machine.
  • CORBA: we do not enforce horrible complex message formats on you.
  • RPC: ØMQ is totally asynchronous, and lets you add/remove participants at any time.
  • RFC 1149: a lot faster!
  • 29west LBM: we're free software!
  • IBM Low-latency: we're free software!
  • Tibco: we're still free software!

User Comments

0MQ is rock solid, 100% reliable, and faaaaaast.Jon Gifford, CTO at Loggly.com

What ZeroMQ ends up being is ”sockets the way programmers think sockets work.”Zed Shaw

ZeroMQ could very well be the new way in how we connect our componentsNicholas Piël

Once again, ZeroMQ surprised me by making it trivialOliver Smith

I didn't get the point of mongrel2 until I learned @zedshaw was using ZeroMQ and making it a communications hub and that makes it genius — @samueldean

A stack most pleasing to the eye and mind — @dlr_eintr

If ZeroMQ didn't exist, it would be necessary to invent it. ZeroMQ simply seems to me a "bare necessity" nowadays.Gonzalo Diethlem

The more time I spend with ZeroMQ, the less I can think of a reason I'd ever have to open up a raw TCP or UDP socket.Andrew Cholakian

ØMQ Blog (Read more...)

1283537226|%e %B: ZeroMQ: Modern & Fast Networking Stack comments.png 0
1283434233|%e %B: September Meetups comments.png 0
1283357108|%e %B: Multithreading Magic comments.png 0
1283340349|%e %B: Not To Be Confused comments.png 2
1282887582|%e %B: ØMQ for Clojure comments.png 0
1282029643|%e %B: ZeroMQ: What You Need to Know Braindump comments.png 0
1280832386|%e %B: RFC: ØMQ Contributions, Copyrights and Control comments.png 13
1280778854|%e %B: New - ØMQ Labs! comments.png 0

Recent Site Changes

1283536066|%e %B: Ruby Binding (FFI) (cremes) comments.png 0
1283515038|%e %B: ØMQ Policies for APIs and Releases (pieterh) comments.png 0
1283439117|%e %B: Community Makes The Market (pieterh) comments.png 0
1283360940|%e %B: Switch or Broker (pieterh) comments.png 0
1283357802|%e %B: Articles (pieterh) comments.png 0
1283357495|%e %B: Multithreading Magic (pieterh) comments.png 0
1283338768|%e %B: ØMQ - The Guide (pieterh) comments.png 0
1283262615|%e %B: Traffic Monitoring (martin_sustrik) comments.png 0

ØMQ Mailing List (Subscribe...)