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. Learn more →
Top 23 Go Messaging Projects
-
Project mention: NSQ: Open-source realtime distributed messaging, billions of messages / day | news.ycombinator.com | 2024-01-09
-
Project mention: Implementing OTel Trace Context Propagation Through Message Brokers with Go | dev.to | 2024-04-04
Several 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.
-
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.
-
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.
-
Tinode
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
-
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)
-
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
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.
-
-
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.
-
-
berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
-
-
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.
-
Project mention: High-Performance server for NATS.io, the cloud and edge native messaging system | news.ycombinator.com | 2023-07-21
-
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
-
There are two main libraries that people use to write clients Confluent Kafka and segment io kafka
-
Are you aware of things like websockets and mercure.rocks?
-
APNs2
⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol.
-
-
-
-
-
teamgram-server
Unofficial open source mtproto server written in golang with compatible telegram client.
-
-
Uniqush-Push
Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Go Messaging related posts
- NATS: First Impressions
- Interview with Sebastian Holstein, Founder of Qaze
- WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport
- NSQ: Open-source realtime distributed messaging, billions of messages / day
- Public chatroom websocket project in Go
- Ask HN: Who is hiring? (December 2023)
- Scripting with NATS.io support
-
A note from our sponsor - InfluxDB
www.influxdata.com | 17 Apr 2024
Index
What are some of the best open-source Messaging projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | nsq | 24,516 |
2 | NATS | 14,678 |
3 | open-im-server | 12,900 |
4 | Tinode | 11,462 |
5 | Asynq | 8,535 |
6 | Centrifugo | 7,848 |
7 | gorush | 7,583 |
8 | Benthos | 7,516 |
9 | berty | 7,283 |
10 | machinery | 7,273 |
11 | watermill | 6,697 |
12 | NATS | 5,116 |
13 | Jocko | 4,878 |
14 | Confluent Kafka Golang Client | 4,403 |
15 | Mercure | 3,726 |
16 | APNs2 | 2,928 |
17 | notify | 2,692 |
18 | liftbridge | 2,531 |
19 | go-nsq | 2,525 |
20 | gopush-cluster | 2,078 |
21 | teamgram-server | 1,651 |
22 | EventBus | 1,626 |
23 | Uniqush-Push | 1,524 |