ZeroMQ, often written 0MQ or ZMQ, is an open-source messaging library rather than a standalone broker. Its own site describes it as a universal messaging library that looks like an embeddable networking library but acts like a concurrency framework. The libzmq README characterizes it as a lightweight messaging kernel that extends the standard socket interface with features traditionally provided by specialized messaging middleware products. In other words, ZeroMQ gives applications smart sockets that carry whole messages and embed common communication patterns.
The defining characteristic of ZeroMQ is that it is brokerless. Conventional message-oriented middleware routes messages through a central server; ZeroMQ instead links into the application process itself, and its sockets connect directly peer to peer over transports including in-process, inter-process, TCP, and multicast. Removing the broker eliminates a separate piece of infrastructure to deploy and a potential bottleneck, at the cost of pushing responsibilities such as message persistence and discovery back into the application or supporting services.
ZeroMQ sockets are typed by the messaging pattern they implement rather than being generic byte streams. A PUB socket fans messages out to many SUB sockets for publish/subscribe; REQ and REP sockets implement request/reply; PUSH and PULL sockets distribute tasks across a pipeline of workers. These patterns can be composed and let developers build N-to-N topologies (fan-out, fan-in, load distribution) without writing the framing, queuing, and reconnection logic by hand. The library handles asynchronous I/O in background threads so that sends and receives do not block the application.
The project was created by iMatix under the leadership of Pieter Hintjens, together with collaborators including Martin Sustrik, and was released as free software. Hintjens was also a strong advocate for the community process behind the project, and the ecosystem grew a large family of language bindings so that ZeroMQ could be used from C, C++, Python, Java, and many others while the core library, libzmq, remained the C/C++ implementation underneath.
ZeroMQ became popular in systems that need fast, low-latency message passing without the operational weight of a broker, including financial trading platforms, scientific computing, and the internal plumbing of larger applications. Notable users have included major technology companies. Its patterns and concepts also influenced later messaging work, and the guidance distilled in the project, especially the ZeroMQ guide, became a widely read reference on building distributed messaging applications.