ZeroMQ logo

ZeroMQ

Fast, lightweight messaging library that allows you to design complex communication system without much effort
261
579
+ 1
71

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 9.2K GitHub stars and 2.3K GitHub forks. Here’s a link to ZeroMQ's open source repository on GitHub

Who uses ZeroMQ?

Companies
55 companies reportedly use ZeroMQ in their tech stacks, including Alibaba Travels, energy2market, and Ford Otosan.

Developers
184 developers on StackShare have stated that they use ZeroMQ.

ZeroMQ Integrations

Pros of ZeroMQ
23
Fast
20
Lightweight
11
Transport agnostic
7
No broker required
4
Low level APIs are in C
4
Low latency
1
Open source
1
Publish-Subscribe
Decisions about ZeroMQ

Here are some stack decisions, common use cases and reviews by companies and developers who chose ZeroMQ in their tech stack.

Needs advice
on
MongoDBMongoDB
and
ZeroMQZeroMQ

In our Spring Boot application, which encompasses various projects, we employ ZeroMQ (ZMQ) for communication via a req/resp pattern. Recently, I observed that data is persisted in the MongoDB database before being transmitted to other applications. I've identified a method to monitor changes to the database, and I'm contemplating whether to utilize this monitoring approach to detect changes and execute the necessary instructions.

Which approach is more advisable in this scenario: leveraging the database monitoring mechanism or sticking with the current ZMQ req/resp communication?

Essentially, I'm seeking guidance on whether to rely on database monitoring for change detection and subsequent actions or to continue with the existing ZMQ communication pattern.

See more
Meili Triantafyllidi
Software engineer at Digital Science · | 6 upvotes · 434.8K views
Needs advice
on
Amazon SQSAmazon SQSRabbitMQRabbitMQ
and
ZeroMQZeroMQ

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

See more

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.
See all alternatives

ZeroMQ's Followers
579 developers follow ZeroMQ to keep up with related blogs and decisions.