Side by side
NATS vs ZeroMQ
Both stand on message queue (mq) software. Which one you can start free with, which one lets you read the code, and what each costs once you pay.
Free plan APILinuxSelf-hosted
Choose NATS if you need open-source messaging for distributed services and want pub/sub, request/reply, and persistent streaming in one system. Its documented clients and connectors offer options across many languages and tools; teams seeking an app outside the listed API, Linux, and self-hosted platforms should look elsewhere.
Visit NATS Free plan LinuxMacSelf-hosted+1
ZeroMQ offers a broad set of messaging patterns, transports, and language bindings for application developers. Go users should account for the wrapper's installation and cross-compilation constraints.
Visit ZeroMQThe facts
| NATS | ZeroMQ | |
|---|---|---|
| Free plan | Yes | Yes |
| Open source | Not published | Not published |
| Runs on | API, Linux, Self-hosted | Linux, Mac, Self-hosted, Windows |
| Lowest paid plan | Free or on request | Free or on request |
| Plans published | 1 | 1 |
| Maker | Not published | Not published |
| Website | nats.io | zeromq.org |
| On message queue (mq) software | #17 of 29 | #21 of 29 |
NATS: what it does well
- Supports pub/sub, request/reply, and persistent streaming through JetStream.
- Combines queueing, key-value functions, streaming, and object storage.
- Single binary has no external dependencies.
- Typically uses less than 20 MB of RAM.
- Documents authentication, authorization, TLS, and isolated accounts.
What to know first
- It is a messaging system for teams building distributed systems.
- The server is listed for Linux and self-hosted environments, alongside an API platform.
ZeroMQ: what it does well
- Can run without a dedicated message broker
- Supports publish-subscribe, request-reply, and client-server
- Offers bindings for many programming languages
- Free and open source
- Supports PLAIN and CURVE security mechanisms
What to know first
- Go's zmq4 wrapper cannot be cross-compiled
- Go's wrapper requires installed ZeroMQ development files