Top 23 Go Messaging Projects
-
nsq
A realtime distributed messaging platform
-
NATS
High-Performance server for NATS, the cloud native messaging system.
Latest mention: Tiny message broker written in Go - nothing serious. Born out of COVID-boredom. Would love your suggestions. | reddit.com/r/golang | 2020-12-23NATS has it's own custom text based protocol, and the client ecosystem is not as mature as others', like MQTT. In fact, I developed the NATS Dart client initially to be used from Flutter apps, but now can be used on Dart servers as well. Ivan from NATS is currently working on native MQTT v3.5 support (releasing sometime soon) and v5 support landing in Q1 2021 (Source: NATS Roadmap). I see here that they're building the Go implementation from scratch, which is interesting. They also seem to be converting every MQTT topic to a NATS topic for backward compatibility (obviously, duh) - I'm not sure if this brings any challenges down the line.
-
sarama
Sarama is a Go library for Apache Kafka 0.8, and up.
Latest mention: Web Development in Go: Middleware, Templating, Databases & Beyond | dev.to | 2021-01-27https://github.com/Shopify/sarama (Apache Kafka driver)
-
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.
-
Centrifugo
Scalable real-time messaging server in language-agnostic way
https://github.com/centrifugal/centrifugo https://centrifugal.github.io/centrifugo/
-
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
Latest 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
Latest mention: Live - A net/http compatible Phoenix LiveView implementation | reddit.com/r/golang | 2020-12-31 -
liftbridge
Lightweight, fault-tolerant message streams.
-
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.
Latest 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 -
zmq4
A Go interface to ZeroMQ version 4
-
berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
Latest mention: Show HN: Peer-to-peer messaging app that works with or without internet access | reddit.com/r/patient_hackernews | 2021-01-27 -
Gollum
An n:m message multiplexer written in Go
-
EventBus
[Go] Lightweight eventbus with async compatibility for Go
-
Asynq
Asynq: simple, reliable, and efficient distributed task queue in Go
I have been using https://github.com/hibiken/asynq with great success. I looked at Faktory, but didn't want to deal with a separate executable + persisting its data, Asynq is the usual "library talking to Redis" implementation.
Index
What are some of the best open-source Messaging projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | nsq | 19,105 |
2 | NATS | 8,776 |
3 | sarama | 6,758 |
4 | gorush | 5,203 |
5 | Tinode | 5,144 |
6 | machinery | 4,886 |
7 | Centrifugo | 4,833 |
8 | Jocko | 4,118 |
9 | NATS | 3,188 |
10 | Benthos | 2,805 |
11 | Confluent Kafka Golang Client | 2,475 |
12 | APNs2 | 2,425 |
13 | Mercure | 2,278 |
14 | liftbridge | 1,978 |
15 | gopush-cluster | 1,959 |
16 | go-nsq | 1,833 |
17 | Uniqush-Push | 1,230 |
18 | beaver | 1,030 |
19 | zmq4 | 885 |
20 | berty | 884 |
21 | Gollum | 883 |
22 | EventBus | 858 |
23 | Asynq | 849 |