What's 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's ØMQ?
- ØMQ is a lightweight messaging implementation with socket-like API.
- ØMQ supports different messaging models (publish/subscribe, request/reply, streaming).
- Ø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. Requires just a couple of pages in resident memory.
- ØMQ is fully open sourced LGPL-licensed software written in C++.
- ØMQ provides C, C++, Common Lisp, Java, Python and Ruby language APIs.
- ØMQ supports different transport protocols: TCP, UDP, PGM, IPC, inter-thread etc.
- ØMQ runs on AIX, FreeBSD, HP-UX, Linux, Mac OS X, OpenBSD, OpenVMS, QNX Neutrino, Solaris and Windows.
- ØMQ supports i386, x86-64, Sparc, Itanium, Alpha and ARM microarchitectures.
- Ø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.
Recent highlights
- 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.
- December 4th, 2009: Check performance results for Common Lisp binding at Vitaly Mayatskikh's blog.
- December 4th, 2009: ØMQ IRC chatroom is available here.
- November 27th, 2009: Common Lisp binding for ØMQ/2.0 was created by Vitaly Mayatskikh. Get the source code here.
Technical support
For technical support on your ØMQ deployment please contact us.
Mailing list
Recent discussion from the zmq-dev mailing list:
