What is ZeroMQ?
The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.
ZeroMQ is a tool in the Message Queue category of a tech stack.
ZeroMQ is an open source tool with 8.5K GitHub stars and 2.3K GitHub forks. Here’s a link to ZeroMQ's open source repository on GitHub
Who uses ZeroMQ?
Companies
56 companies reportedly use ZeroMQ in their tech stacks, including Alibaba Travels, energy2market, and Ford Otosan.
Developers
175 developers on StackShare have stated that they use ZeroMQ.
Pros of ZeroMQ
24
20
11
7
4
4
1
1
Decisions about ZeroMQ
Here are some stack decisions, common use cases and reviews by companies and developers who chose ZeroMQ in their tech stack.
Meili Triantafyllidi
Software engineer at Digital Science · | 6 upvotes · 381.6K views
Hi, we are in a ZMQ set up in a push/pull pattern, and we currently start to have more traffic and cases that the service is unavailable or stuck. We want to: * Not loose messages in services outages * Safely restart service without losing messages (ZeroMQ seems to need to close the socket in the receiver before restart manually)
Do you have experience with this setup with ZeroMQ? Would you suggest RabbitMQ or Amazon SQS (we are in AWS setup) instead? Something else?
Thank you for your time
ZeroMQ's Features
- Connect your code in any language, on any platform.
- Carries messages across inproc, IPC, TCP, TPIC, multicast.
- Smart patterns like pub-sub, push-pull, and router-dealer.
- High-speed asynchronous I/O engines, in a tiny library.
- Backed by a large and active open source community.
- Supports every modern language and platform.
- Build any architecture: centralized, distributed, small, or large.
- Free software with full commercial support.
ZeroMQ Alternatives & Comparisons
What are some alternatives to ZeroMQ?
RabbitMQ
RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
Kafka
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
MQTT
It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium.
Redis
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.
ActiveMQ
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4. Apache ActiveMQ is released under the Apache 2.0 License.