
NSQ
A realtime messaging system that passes messages between programs, built to run across many machines.
- Stars
- 25.8k
- Forks
- 2.9k
- Licence
- MIT
- Language
- Go
- Last update
- 3 months ago
- Type
- Other
What it is
NSQ is a messaging platform: one part of a system sends messages and another part receives them, without the two needing to connect directly. The README says it is designed to handle very large volumes of messages and to avoid single points of failure by spreading work across distributed nodes. It is written in Go, and its binaries are described as having no runtime dependencies, with all settings passed on the command line.
- Pass events such as user actions or job requests from one service to several consumers
- Buffer messages so a slow processing service does not block the service that produces them
- Run a distributed messaging layer across several servers using the official Docker image or binary releases
Great for
- Teams running backend services that need to pass many messages between components in real time
- Engineers who want a self-hosted queue without relying on a hosted cloud service
- Go or Python developers who want ready-made client libraries
- Operators who prefer simple command-line configuration over large config files
Not ideal for
- Small projects with light messaging needs, where a simpler queue or database table would be enough (the README describes a platform built for scale)
- Anyone who needs a fully managed service with no operations work, since the README covers self-deployment only
- People who need the latest stable code, because the README warns that master is a development branch and may not be stable
How to get it
- 1
Download the app
Clone the repository
git clone https://github.com/nsqio/nsq - 2
Run it
- Download a binary release for your platform from the releases page or use the official Docker image, as the README describes
- Follow the installation guide at https://nsq.io/deployment/installing.html
- Start the NSQ components with their command-line parameters, per the documentation
- Connect a client library (Go and Python are official) to send and receive a test message
- 3
Get the most out of it
- Use the official Docker image for containerized deployment, per the README
- Read the features and guarantees page to understand delivery behavior before relying on it
- Use one of the many client libraries listed on the NSQ site if you are not using Go or Python
- Pin to a tagged release rather than master for production use
Downloads
Strengths
- The README claims it is designed to scale to billions of messages per day and lists production users such as Bitly and Stripe
- Binaries have no runtime dependencies and all parameters are set on the command line, which keeps deployment simple
- Data format agnostic: messages can be JSON, MsgPack, Protocol Buffers, or anything else
Trade-offs
- The README does not detail the delivery guarantees here; it refers to a separate features page, so the exact behavior needs checking there
- master may be unstable, so production users should pin to a tagged release
- Operating a distributed system takes real operational skill even if setup is simple
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| nsq (this) | 25.8k | Other | intermediate | 3 months ago | Teams running backend services that need to pass many messages between components in real time |
| temporal | 24.1k | Dev tool | intermediate | 4 days ago | Backend developers building multi-step processes that must finish reliably |
| rqlite | 17.9k | App | intermediate | 4 days ago | Developers who want a replicated SQL database without running a large database server |
| orleans | 10.9k | Library | intermediate | 4 days ago | C# and .NET developers building scalable backend services |
| petals | 10.7k | Library | intermediate | 2.2 years ago | Developers who want to experiment with large open models like Llama 3.1 or BLOOM without owning the hardware to run them alone |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.