Go Messaging

Open-source Go projects categorized as Messaging

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-23

    NATS 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-27

    https://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

    Latest mention: need some help with gin/websocket application . | reddit.com/r/golang | 2020-12-23

    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-21

    Curious 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

    Latest mention: Best alternative at the Sidekiq at Go? | reddit.com/r/golang | 2021-01-07

    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.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-01-27.


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