Messaging

60 projects

Messaging covers how Go services exchange events and work: clients for brokers such as Kafka, NATS, RabbitMQ and NSQ, background task queues, event-driven application libraries, in-process event buses, real-time servers for WebSockets and server-sent events, and push notification services. The right choice depends on whether you need durable streams, work queues or live fan-out to browsers.

For Kafka, IBM's sarama is a pure Go client, while confluent-kafka-go wraps librdkafka through cgo. nats.go is the official NATS client and rabbitmq/amqp091-go is the maintained RabbitMQ client that replaced streadway/amqp. hibiken/asynq is a Redis-backed task queue with retries, scheduling and a web UI, and machinery offers a similar model over several brokers. ThreeDotsLabs' Watermill gives one Publisher and Subscriber interface across Kafka, NATS, AMQP, SQL and more. For real-time delivery, Centrifugo and Mercure are standalone servers and melody manages WebSocket sessions. gorush and APNs2 send mobile push notifications.

Use a task queue like Asynq when you need retries and delayed jobs and already run Redis. Pick Kafka or NATS JetStream for durable event streams consumed by several services, and plain NATS for low-latency request and reply. Watermill helps if you expect to change brokers or want consistent middleware across them.

Asynqby hibiken

A simple, reliable, and efficient distributed task queue for Go built on top of Redis.

github.com/hibiken/asynqGo 1.24+ 9 dependenciesv0.26.0updated 14d ago

13.8k

saramaby Shopify

Go library for Apache Kafka.

github.com/IBM/saramaGo 1.26+ 12 dependenciesv1.61.1updated 6d ago

12.5k

Centrifugoby centrifugal

Real-time messaging (Websockets or SockJS) server in Go.

github.com/centrifugal/centrifugo/v6Go 1.27+ 63 dependenciesv6.10.2updated today

10.9k

Watermillby ThreeDotsLabs

Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog.

github.com/ThreeDotsLabs/watermillGo 1.25+ 12 dependenciesv1.5.3updated 5d ago

9.9k

gorushby appleboy

Push notification server using APNs2 and google GCM.

github.com/appleboy/gorushGo 1.25+ 39 dependenciesv1.22.0updated 3mo ago

8.8k

machineryby RichardKnop

Asynchronous task queue/job queue based on distributed message passing.

github.com/RichardKnop/machineryGo 1.22+ 17 dependenciesv2.0.16updated 11mo ago

8k

NATS Go Clientby nats-io

Go client for the NATS messaging system.

github.com/nats-io/nats.goGo 1.26+ 3 dependenciesv1.55.0updated today

6.8k

Mercureby dunglas

Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events).

github.com/dunglas/mercureGo 1.27+ 18 dependenciesv1.1.5updated today

5.4k

Confluent Kafka Golang Clientby confluentinc

Confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform.

github.com/confluentinc/confluent-kafka-go/v2Go 1.26+ 30 dependenciesv2.16.1updated 1d ago

5.2k

melodyby olahol

Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling.

github.com/olahol/melodyGo 1.19+ 2 dependenciesupdated 1y ago

4.1k

APNs2by sideshow

HTTP/2 Apple Push Notification provider for Go - Send push notifications to iOS, tvOS, Safari and OSX apps.

github.com/sideshow/apns2Go 1.18+ 4 dependenciesv0.25.0updated 1y ago

3.2k

go-nsqby nsqio

The official Go package for NSQ.

github.com/nsqio/go-nsqGo 1.17+ 1 dependencyv1.1.0updated 1y ago

2.7k

gopush-clusterby Terry-Mao

Gopush-cluster is a go push server cluster.

v1.0.4updated 9y ago

2.1k

amqpby rabbitmq

Go RabbitMQ Client Library.

github.com/rabbitmq/amqp091-goGo 1.20+ 1 dependencyv1.16.0updated today

2k

EventBusby asaskevich

The lightweight event bus with async compatibility.

updated 2y ago

2k

Beaverby Clivern

A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.

github.com/clivern/beaverGo 1.20+ 10 dependenciesv1.5.0updated 20d ago

1.6k

Uniqush-Pushby uniqush

Redis backed unified push service for server-side notifications to mobile devices.

github.com/uniqush/uniqush-pushGo 1.26+ 6 dependencies2.12.0updated 2d ago

1.6k

Chanify

A push notification server send message to your iOS devices.

github.com/chanify/chanifyGo 1.20+ 16 dependenciesv1.4.3updated 3y ago

1.3k

zmq4by pebbe

Go interface to ZeroMQ version 4. Also available for version 3 and version 2.

v1.4.0archived

1.3k

dbusby godbus

Native Go bindings for D-Bus.

github.com/godbus/dbus/v5Go 1.20+ 1 dependencyv5.2.4updated 20d ago

1.2k

Gollumby trivago

A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations.

0.6.0archived

939

mangosby nanomsg

Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability.

go.nanomsg.org/mangos/v3Go 1.26+ 4 dependenciesv3.6.0updated today

762

golongpollby jcuga

HTTP longpoll server library that makes web pub-sub simple.

github.com/jcuga/golongpoll1 dependencyv1.3.1updated 3y ago

666

emitterby olebedev

Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.

updated 3y ago

528

Quaminaby timbray

Fast pattern-matching for filtering messages and events.

quamina.net/go/quamina/v2Go 1.22+ No dependencies v2.0.3updated 15d ago

509

pubsubby tuxychandru

Simple pubsub package for go.

github.com/cskr/pubsub/v2Go 1.18+ No dependencies updated 2y ago

453

Glueby desertbit

Robust Go and Javascript Socket Library (Alternative to Socket.io).

updated 6y ago

421

Busby mustafaturan

Minimalist message bus implementation for internal communication.

github.com/mustafaturan/bus/v3Go 1.16+ 1 dependencyv3.0.1updated 3y ago

368

rabtapby jandelgado

RabbitMQ swiss army knife cli app.

github.com/jandelgado/rabtapGo 1.27+ 12 dependenciesv1.46.0updated 7d ago

290

messagebusby vardius

Messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD.

github.com/vardius/message-bus/v2Go 1.26+ No dependencies v2.0.0updated 2d ago

284

Go-MediatRby mehdihadeli

A library for handling mediator patterns and simplified CQRS patterns within an event-driven architecture, inspired by csharp MediatR library.

github.com/mehdihadeli/go-mediatrGo 1.24+ 2 dependenciesv1.4.0updated 1y ago

282

varmqby goptics

A storage-agnostic message queue and worker pool for concurrent Go programs.

github.com/goptics/varmqGo 1.24+ 1 dependencyv1.10.0updated today

209

gubleby smancke

Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence.

v0.4updated 9y ago

161

backliteby mikestefanello

Type-safe, persistent, embedded task queues and background job runner w/ SQLite.

github.com/mikestefanello/backliteGo 1.25+ 3 dependenciesv0.8.0updated 27d ago

157

hubby leandro-lugaresi

A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges.

github.com/leandro-lugaresi/hubGo 1.13+ 1 dependencyv1.1.2updated 3mo ago

150

redisqueueby robinjoseph08

Redisqueue provides a producer and consumer of a queue that uses Redis streams.

github.com/robinjoseph08/redisqueue/v2Go 1.12+ 5 dependenciesupdated 2y ago

138

Ratusby hyperonym

Ratus is a RESTful asynchronous task queue server.

github.com/hyperonym/ratusGo 1.22+ 9 dependenciesv0.9.1updated 11mo ago

127

rabbitroutineby furdarius

Lightweight library that handles RabbitMQ auto-reconnect and publishing retries. The library takes into account the need to re-declare entities in RabbitMQ after reconnection.

github.com/furdarius/rabbitroutineGo 1.20+ 4 dependenciesv0.8.2updated 2y ago

115

oplogby dailymotion

Generic oplog/replication system for REST APIs.

updated 2y ago

111

rabbusby rafaeljesus

A tiny wrapper over amqp exchanges and queues.

v3.0.0updated 7y ago

98

go-mqby cheshir

RabbitMQ client with declarative configuration.

github.com/cheshir/go-mq/v2Go 1.16+ 3 dependenciesv2.0.1updated 3y ago

91

drone-lineby appleboy

Sending Line notifications using a binary, docker or Drone CI.

v1.5.1archived

81

nsq-event-busby rafaeljesus

A tiny wrapper around NSQ topic and channel.

updated 8y ago

80

GoEventBusby Raezil

A blazing‑fast, in‑memory, lock‑free event bus library

github.com/Protocol-Lattice/GoEventBusGo 1.23+ 15 dependenciesv0.3.9updated 28d ago

75

go-notifyby TheCreeper

Native implementation of the freedesktop notification spec.

github.com/TheCreeper/go-notifyGo 1.12+ 1 dependencyupdated 5y ago

71

go-resby jirenius

Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate.

github.com/jirenius/go-resGo 1.18+ 7 dependenciesv0.5.2updated 5mo ago

70

RapidMQby sybrexsys

RapidMQ is a lightweight and reliable library for managing of the local messages queue.

updated 8y ago

70

Commanderby jeroenrinzema

A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka.

github.com/jeroenrinzema/commanderGo 1.12+ 6 dependenciesv0.6.1updated 11mo ago

68

eventby agoalofalife

Implementation of the pattern observer.

v0.2.0updated 8y ago

61

hareby leozz37

A user friendly library for sending messages and listening to TCP sockets.

github.com/leozz37/hareGo 1.15+ 1 dependencyv0.6.0updated 2mo ago

55

hypermatchby SchwarzDigits

Matches events against large sets of rules, with rules written in Go or as JSON.

github.com/SchwarzDigits/hypermatch/v2Go 1.24+ No dependencies v2.3.0updated 1mo ago

39

amiby kak-tus

Go client to reliable queues based on Redis Cluster Streams.

github.com/kak-tus/amiGo 1.13+ 5 dependenciesupdated 6y ago

34

gosdby alexsniffin

A library for scheduling when to dispatch a message to a channel.

github.com/alexsniffin/gosd/v2Go 1.19+ No dependencies v2.0.0updated 4y ago

26

go-vitotrolby maxatome

Client library to Viessmann Vitotrol web service.

github.com/maxatome/go-vitotrolGo 1.18+ 1 dependencyupdated 11mo ago

24

rmqconnby sbabiv

RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed.

v1.1.0updated 6y ago

23

jazzby socifi

A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages.

updated 7y ago

18

brokerby qvcloud

Production-grade messaging abstraction with a unified API for various brokers and built-in OpenTelemetry integration.

github.com/qvcloud/brokerGo 1.26+ 15 dependenciesv0.3.8updated 3d ago

12

gaurun-clientby osamingo

Gaurun Client written in Go.

v1.0.0updated 5y ago

11

go-eventbusby stanipetrosyan

Simple Event Bus package for Go.

github.com/stanipetrosyan/go-eventbusGo 1.23+ 1 dependencyv0.9.0updated 1y ago

11

kilnby rafaelaugustos

Persistent background jobs in PostgreSQL, MySQL or SQLite, with retries, workflows, recurring jobs and a dashboard.

github.com/rafaelaugustos/kilnGo 1.27+ No dependencies v1.0.0updated 4d ago

8
Esc

Type to search every entry. ↑↓ to move, Enter to open.