Top 23 Go Messaging Projects
-
nsq
A realtime distributed messaging platform
-
NATS
High-Performance server for NATS, the cloud native messaging system.
Project mention: NATS, NATS Streaming & NATS JetStream + How to build a JetStream Cluster & Go Client | reddit.com/r/golang | 2021-02-28Here is the original conversation where it was confirmed that you can't really get a reliable distribution, even with MaxInFlight=1: https://github.com/nats-io/nats-server/issues/878 They said over time it would even out, but in my case I cannot allow a busy worker to be pushed a second message.
-
Scout
Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
sarama
Sarama is a Go library for Apache Kafka 0.8, and up.
I suspect our issue is very much related to rebalancing and the consumer groups to adjust based on that. I followed what is suggested in this issue https://github.com/Shopify/sarama/issues/1685 to re-establish the session whenever it gets closed and it is been working out well for us. There has been little delay sometimes and I am still working on finding the root cause for session closure.
-
gorush
A push notification server written in Go (Golang).
-
Tinode
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
-
machinery
Machinery is an asynchronous task queue/job queue based on distributed message passing.
we moved away to enterprise task Automator for all workload. there are open source scheduler solutions too. I use machinery ( https://github.com/RichardKnop/machinery) for my home cluster. it distributes ML tasks between 180 cores. lots of R610 running. lol.
-
Centrifugo
Scalable real-time messaging server in language-agnostic way
Project mention: [Help] Pub/Sub model or any Server Event Notification (Open to suggestions). | reddit.com/r/golang | 2021-02-10Mb try something like this https://github.com/centrifugal/centrifugo?
-
berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
Project mention: The Signal Server repository hasn’t been updated since April 2020 | reddit.com/r/privacy | 2021-03-03Berty (when released)
-
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
-
NATS
Golang client for NATS, the cloud native messaging system.
-
Benthos
Declarative streaming ETL for mundane tasks, written in Go
Project mention: A flexible and powerful stream processing library for Go. | reddit.com/r/golang | 2020-12-21Curious how this would compare to Benthos?
-
Confluent Kafka Golang Client
Confluent's Apache Kafka Golang client
-
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.
-
Mercure
Server-sent live updates: protocol and reference implementation
Project mention: Live - A net/http compatible Phoenix LiveView implementation | reddit.com/r/golang | 2020-12-31 -
liftbridge
Lightweight, fault-tolerant message streams.
Project mention: NATS, NATS Streaming & NATS JetStream + How to build a JetStream Cluster & Go Client | reddit.com/r/golang | 2021-02-28 -
gopush-cluster
Golang push server cluster
-
go-nsq
The official Go package for NSQ
-
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.
Project mention: Clivern/Beaver - A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. | reddit.com/r/github | 2021-01-04 -
Asynq
Asynq: simple, reliable, and efficient distributed task queue in Go
I have an open issue to add this feature in asynq (https://github.com/hibiken/asynq/issues/218) but currently it's not available.
-
zmq4
A Go interface to ZeroMQ version 4
-
Gollum
An n:m message multiplexer written in Go (by trivago)
-
EventBus
[Go] Lightweight eventbus with async compatibility for Go (by asaskevich)
Index
What are some of the best open-source Messaging projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | nsq | 19,263 |
2 | NATS | 8,945 |
3 | sarama | 6,846 |
4 | gorush | 5,274 |
5 | Tinode | 5,224 |
6 | machinery | 4,958 |
7 | Centrifugo | 4,906 |
8 | berty | 4,207 |
9 | Jocko | 4,154 |
10 | NATS | 3,241 |
11 | Benthos | 2,878 |
12 | Confluent Kafka Golang Client | 2,529 |
13 | APNs2 | 2,443 |
14 | Mercure | 2,348 |
15 | liftbridge | 2,009 |
16 | gopush-cluster | 1,962 |
17 | go-nsq | 1,858 |
18 | Uniqush-Push | 1,235 |
19 | beaver | 1,051 |
20 | Asynq | 906 |
21 | zmq4 | 899 |
22 | Gollum | 883 |
23 | EventBus | 874 |