Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Go Pubsub Projects
-
dapr
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
-
Olric
Distributed in-memory object store. It can be used as an embedded Go library and a language-independent service.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
-
centrifuge
Real-time messaging library for Go. The simplest way to add feature-rich and scalable WebSocket support to your application. The core of Centrifugo server.
-
golongpoll
golang long polling library. Makes web pub-sub easy via HTTP long-poll servers and clients :smiley: :coffee: :computer:
-
Bus
🔊Minimalist message bus implementation for internal communication with zero-allocation magic on Emit (by mustafaturan)
-
kiara
Backend-agnostic, lightweight pub/sub library which makes it easy for Go applications to communicate with each other.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: .NET Aspire is the best way to experiment with Dapr during local development | dev.to | 2024-05-04Dapr provides a set of building blocks that abstract concepts commonly used in distributed systems. This includes secured synchronous and asynchronous communication between services, caching, workflows, resiliency, secret management and much more. Not having to implement these features yourself eliminates boilerplate, reduce complexity and allows you to focus on developing your business features.
Project mention: Ntfy.sh: simple HTTP-based pub-sub notification service | news.ycombinator.com | 2024-05-19
Project mention: WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport | news.ycombinator.com | 2024-03-20Hello, I am author of https://github.com/centrifugal/centrifugo. Our users can choose from WebSocket, EventSource, WebTransport (experimental stabilize in the future). WebRTC is out of scope as the main purpose is central server based real-time json/binary messaging, and WebRTC makes things much more complex since it shines for peer-to-peer and rich media communications.
What I'd like to add is that Centrifugo also supports HTTP-streaming – not mentioned by the OP – but this is a transport which has advantages over Eventsource - like possibility to send POST body on initial request from web browser (with SSE you can not), it supports binary, and with Readable Streams browser API it's widely supported by modern browsers.
Another thing I'd like to mention about Centrifugo - it supports bidirectional WebSocket fallbacks with EventSource and HTTP-streaming, and does this without sticky sessions requirement. I guess nobody else have this at this point. See https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-releas.... Which solves one more practical concern. Sticky sessions is an optimization in Centrifugo case, not a requirement.
If you are interested in topic, we also have a post about WebSocket scalability - https://centrifugal.dev/blog/2020/11/12/scaling-websocket - it covers some design decisions made in Centrifugo.
Project mention: Olric: Distributed, embeddable in-memory data structures in Go | news.ycombinator.com | 2024-02-05
Project mention: Centrifugo v5 - new major release of real-time messaging server written in Go | /r/golang | 2023-06-29BTW, Centrifugo is based on https://github.com/centrifugal/centrifuge Go library which may provide much more control and flexibility for Gophers than a standalone server and can be embedded to any Go app leveraging all Centrifugo client SDKs.
KubeMQ can be a good choice because it supports both Queue and Stream patterns, which are simple to use and deploy in microservices.
Project mention: Show HN: EchoVault, Embeddable in-memory store to replace Redis in Go apps | news.ycombinator.com | 2024-05-20
Built something similar in Go with a friend a few years ago.
https://github.com/thibauts/styx
Go Pubsub related posts
-
Ntfy.sh: simple HTTP-based pub-sub notification service
-
FBI using push notification tokens to identify anonymous users
-
Governments spying on Apple, Google users through push notifications
-
Show HN: Pvent – a CLI tool for sending messages across message brokers
-
2U Quiet & Efficient DIY Server Build
-
Planning for Low Energy Self Hosted Docker
-
I built a Plane Spotter in 120 secs with ChatGPT
-
A note from our sponsor - InfluxDB
www.influxdata.com | 2 Jun 2024
Index
What are some of the best open-source Pubsub projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | dapr | 23,399 |
2 | ntfy | 16,926 |
3 | Centrifugo | 7,991 |
4 | emitter-io | 3,772 |
5 | Gizmo | 3,756 |
6 | Olric | 3,025 |
7 | liftbridge | 2,543 |
8 | beaver | 1,520 |
9 | centrifuge | 1,009 |
10 | layotto | 805 |
11 | golongpoll | 653 |
12 | mangos | 655 |
13 | kubemq-community | 636 |
14 | pubsub | 414 |
15 | fpGo | 343 |
16 | Bus | 329 |
17 | kiara | 142 |
18 | frugal | 140 |
19 | EchoVault | 165 |
20 | goes | 125 |
21 | styx | 60 |
22 | watermill-amqp | 54 |
23 | pulse | 42 |
Sponsored