Messaging

Libraries that implement messaging systems.

sarama11.7K

Go library for Apache Kafka.

Asynq10.5K

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

Centrifugo8.6K

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

gorush8.1K

Push notification server using APNs2 and google GCM.

Watermill8K

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.

machinery7.6K

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

go-socket.io5.8K

socket.io library for golang, a realtime application framework.

NATS Go Client5.7K

Go client for the NATS

Confluent Kafka Golang Client4.7K

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

Mercure4.7K

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

melody3.8K

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

APNs23K

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

go-nsq2.6K

the official Go package for NSQ.

gopush-cluster2.1K

gopush-cluster is a go push server cluster.

EventBus1.8K

The lightweight event bus with async compatibility.

amqp1.6K

Go RabbitMQ Client Library.

Beaver1.6K

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

Uniqush-Push1.5K

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

Chanify1.3K

A push notification server send message to your iOS devices.

zmq41.2K

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

dbus1K

Native Go bindings for D-Bus.

Gollum940

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

mangos691

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

golongpoll661

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

emitter512

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

pubsub431

Simple pubsub package for go.

Quamina420

Fast pattern-matching for filtering messages and events.

Glue417

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

Bus339

Minimalist message bus implementation for internal communication.

messagebus274

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

rabtap266

RabbitMQ swiss army knife cli app.

Go-MediatR216

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

guble158

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.

hub146

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

redisqueue131

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

oplog111

Generic oplog/replication system for REST APIs.

rabbitroutine110

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.

Ratus110

Ratus is a RESTful asynchronous task queue server.

rabbus97

A tiny wrapper over amqp exchanges and queues.

go-mq90

RabbitMQ client with declarative configuration.

drone-line80

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

nsq-event-bus79

A tiny wrapper around NSQ topic and channel.

go-notify70

Native implementation of the freedesktop notification spec.

RapidMQ68

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

Commander67

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

go-res64

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

event58

Implementation of the pattern observer.

hare53

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

ami29

Go client to reliable queues based on Redis Cluster Streams.

gosd25

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

go-vitotrol23

Client library to Viessmann Vitotrol web service.

rmqconn23

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.

hypermatch22

A very fast and efficient Go library for matching events to a large set of rules

jazz18

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

gaurun-client11

Gaurun Client written in Go.

go-eventbus6

Simple Event Bus package for Go.