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
-
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.
-
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.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
-
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
-
Mercure
🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications
-
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.
-
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: NSQ: Open-source realtime distributed messaging, billions of messages / day | news.ycombinator.com | 2024-01-09
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: Benthos – Fancy stream processing made operationally mundane | news.ycombinator.com | 2024-05-15
Project mention: Berty: Secure P2P message app that needs no internet access or trust in network | news.ycombinator.com | 2024-05-10
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
Go Messaging related posts
-
Benthos – Fancy stream processing made operationally mundane
-
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)
-
A note from our sponsor - InfluxDB
www.influxdata.com | 2 Jun 2024
Index
What are some of the best open-source Messaging projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | nsq | 24,649 |
2 | NATS | 14,925 |
3 | open-im-server | 13,216 |
4 | Tinode | 11,627 |
5 | Asynq | 8,795 |
6 | Centrifugo | 7,991 |
7 | gorush | 7,771 |
8 | Benthos | 7,724 |
9 | machinery | 7,350 |
10 | berty | 7,356 |
11 | watermill | 6,818 |
12 | NATS | 5,216 |
13 | Jocko | 4,885 |
14 | Mercure | 3,787 |
15 | APNs2 | 2,944 |
16 | notify | 2,735 |
17 | go-nsq | 2,544 |
18 | liftbridge | 2,543 |
19 | gopush-cluster | 2,078 |
20 | teamgram-server | 1,694 |
21 | EventBus | 1,651 |
22 | Uniqush-Push | 1,524 |
23 | beaver | 1,520 |
Sponsored