The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 Messaging Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Apache RocketMQ
Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Tinode
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
-
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
-
berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
-
Apache Camel
Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Apache Kafka — a distributed event streaming platform implementing a variant of the Raft consensus protocol (written in Java, integrated with Scala);
Project mention: NSQ: Open-source realtime distributed messaging, billions of messages / day | news.ycombinator.com | 2024-01-09
Project mention: Critical Analysis: Unraveling the Apache RocketMQ Remote Code Execution Vulnerability (CVE-2023-33246) | dev.to | 2023-07-29
Project mention: Implementing OTel Trace Context Propagation Through Message Brokers with Go | dev.to | 2024-04-04Several message brokers, such as NATS and database queues, are not supported by OpenTelemetry (OTel) SDKs. This article will guide you on how to use context propagation explicitly with these message queues.
Project mention: Choosing Between a Streaming Database and a Stream Processing Framework in Python | dev.to | 2024-02-10Stream-processing platforms such as Apache Kafka, Apache Pulsar, or Redpanda are specifically engineered to foster event-driven communication in a distributed system and they can be a great choice for developing loosely coupled applications. Stream processing platforms analyze data in motion, offering near-zero latency advantages. For example, consider an alert system for monitoring factory equipment. If a machine's temperature exceeds a certain threshold, a streaming platform can instantly trigger an alert and engineers do timely maintenance.
EMQX (optional): Open-source MQTT broker for IoT, IIoT, and connected vehicles. Used for managing your toys.
If you are interested in Open-IM-Server, you can find the source code on GitHub: Source code , where you can also join the community and contribute to the project. You can also join the Telegram group or the WeChat group to chat with other developers and get support.
Although they did not make it into production, I experimented with the RabbitMQ message broker, Python (Django, Flask), Kubernetes + minikube, JWT, and NGINX. This was a hobby project, but I intended to learn about microservices along the way.
Slightly OT:
Are ZeroMQ and NanoMQ still widely used (and recommended)?
https://github.com/zeromq/libzmq
https://github.com/nanomq/nanomq
EDIT : I think the best for my case will be to use the asynq library with a custom js client, it's quite easy to implement (Detailed here)
Project mention: WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport | news.ycombinator.com | 2024-03-20Hello, I am author of https://github.com/centrifugal/centrifugo. Our users can choose from WebSocket, EventSource, WebTransport (experimental stabilize in the future). WebRTC is out of scope as the main purpose is central server based real-time json/binary messaging, and WebRTC makes things much more complex since it shines for peer-to-peer and rich media communications.
What I'd like to add is that Centrifugo also supports HTTP-streaming – not mentioned by the OP – but this is a transport which has advantages over Eventsource - like possibility to send POST body on initial request from web browser (with SSE you can not), it supports binary, and with Readable Streams browser API it's widely supported by modern browsers.
Another thing I'd like to mention about Centrifugo - it supports bidirectional WebSocket fallbacks with EventSource and HTTP-streaming, and does this without sticky sessions requirement. I guess nobody else have this at this point. See https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-releas.... Which solves one more practical concern. Sticky sessions is an optimization in Centrifugo case, not a requirement.
If you are interested in topic, we also have a post about WebSocket scalability - https://centrifugal.dev/blog/2020/11/12/scaling-websocket - it covers some design decisions made in Centrifugo.
Project mention: LMAX Disruptor – High Performance Inter-Thread Messaging Library | news.ycombinator.com | 2023-11-17Semi-related is the Aeron project: https://github.com/real-logic/aeron
I’ve successfully worked on projects using an asynchronous event-driven way of connecting services. I really like the decoupling of business logic and the events triggering it. I highly recommend https://github.com/ThreeDotsLabs/watermill to be more flexible when it comes to choosing the actual technology driving the async patter. It might be NATS today but requirements might change and you need to change. Watermill prepares you for this.
What would be the benefits of using your library instead of something like MassTransit?
Project mention: Show HN: Winglang – a new Cloud-Oriented programming language | news.ycombinator.com | 2023-12-06
Messaging related posts
- Zenoh: Zero Overhead Network Protocol
- Lightweight and fast AMQP (0-9-1) server
- Show HN: AutoMQ – A Cost-Effective Kafka distro that can autoscale in seconds
- NATS: First Impressions
- Interview with Sebastian Holstein, Founder of Qaze
- WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport
- Alt to Ngrok, Written in Rust
-
A note from our sponsor - WorkOS
workos.com | 25 Apr 2024
Index
What are some of the best open-source Messaging projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Apache Kafka | 27,335 |
2 | nsq | 24,561 |
3 | Apache RocketMQ | 20,558 |
4 | NATS | 14,720 |
5 | Apache Pulsar | 13,744 |
6 | emqx | 13,194 |
7 | open-im-server | 12,936 |
8 | RabbitMQ | 11,590 |
9 | Tinode | 11,532 |
10 | ZeroMQ | 9,256 |
11 | Asynq | 8,615 |
12 | Centrifugo | 7,914 |
13 | gorush | 7,616 |
14 | Benthos | 7,559 |
15 | berty | 7,291 |
16 | machinery | 7,281 |
17 | Aeron | 7,054 |
18 | watermill | 6,729 |
19 | MassTransit | 6,530 |
20 | XMPPFramework | 5,917 |
21 | ejabberd | 5,916 |
22 | MessageKit | 5,889 |
23 | Apache Camel | 5,308 |
Sponsored