Go Pubsub

Open-source Go projects categorized as Pubsub | Edit details

Top 21 Go Pubsub Projects

  • GitHub repo dapr

    Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

    Project mention: Azure Container Apps - CI/CD deployments (Video Demo) | dev.to | 2022-01-11

    Azure Container Apps is a container orchestration platform for deploying modern applications and microservices. With Azure Container Apps you can deploy your containerized apps without the need to take on the overhead of managing the infrastructure of the underlying systems. This service is still in preview, but provides you with the ability to use your preferred language or framework to build microservices with support for Distributed Application Runtime (Dapr). There's also scaling of your containers with Kubernetes Event-Driven Autoscaling (KEDA).

  • GitHub repo Centrifugo

    Scalable real-time messaging server in a language-agnostic way. Set up once and forever.

    Project mention: Woe be onto you for using a WebSocket | news.ycombinator.com | 2021-12-22

    Every time I read criticism of WebSockets it reminds me about WebSuckets (https://speakerdeck.com/3rdeden/websuckets) presentation :)

    I am the author of Centrifugo server (https://github.com/centrifugal/centrifugo) - where the main protocol is WebSocket. Agree with many points in post – and if there is a chance to build sth without replacing stateless HTTP to persistent WebSocket (or EventSource, HTTP-streaming, raw TCP etc) – then definitely better to go without persistent connections.

    But there are many tasks where WebSockets simply shine – by providing a better UX, providing a more interactive content, instant information/feedback. This is important to keep - even if underlying stack is complicated enough. Not every system need to scale to many machines (ex. multiplayer games with limited number of players), corporate apps not really struggle from massive reconnect scenarios, and so on. So WebSockets are definitely fine for certain scenarios IMO.

    I described some problems with WebSockets Centrifugo solves in this blog post - https://centrifugal.dev/blog/2020/11/12/scaling-websocket. I don't want to say there are no problems, I want to say that WebSockets are fine in general and we can do some things to deal with things mentioned in the OP's post.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • GitHub repo Gizmo

    A Microservice Toolkit from The New York Times (by nytimes)

  • GitHub repo emitter-io

    High performance, distributed and low latency publish-subscribe platform.

  • GitHub repo liftbridge

    Lightweight, fault-tolerant message streams.

    Project mention: Processing billions of events in real time at Twitter | news.ycombinator.com | 2021-11-15

    This is basically an ad for GCP right?

    That said, it looks like Kafka is by far and away the way to handle persistent logs/events at scale. AFAIK a company here in Japan called LINE has all their messaging flowing through a large kafka cluster themselves.

    Wonder if anyone is running large NATS Jetstream[0]/Liftbridge[1] or Pulsar[2] (yahoo runs those) clusters. I guess Pulsar might be #2 in terms of adoption at large scale?

    [0]: https://docs.nats.io/jetstream/jetstream

    [1]: https://liftbridge.io/

    [2]: https://pulsar.apache.org/

  • GitHub repo Olric

    Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.

    Project mention: Olric | reddit.com/r/devopspro | 2021-12-11
  • GitHub repo beaver

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

    Project mention: GitHub - 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/golang | 2021-10-16
  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo centrifuge

    Real-time messaging library for Go with scalability in mind.

    Project mention: TCP or websockets for chat server | reddit.com/r/golang | 2021-11-25

    Hello, +1 to WebSockets. If you need to choose WS library – go with https://github.com/gorilla/websocket or https://github.com/gobwas/ws. You can also look at Centrifugo server (https://centrifugal.dev/, supports WebSocket, SockJS bidi transports, also EventSource, HTTP-streaming, GRPC unidirectional transports and many builtin features) or https://github.com/centrifugal/centrifuge Go library.

  • GitHub repo mangos

    mangos is a pure Golang implementation of nanomsg's "Scalablilty Protocols"

    Project mention: Reconnect to a server | reddit.com/r/golang | 2021-03-03

    I'm writing a client application that uses https://github.com/nanomsg/mangos to connect to a server using the PUB/SUB protocol. I'm not sure how to handle server or network interrupts on the client. The application is just a for loop waiting for a message to arrive and the call a go routine to handle that message. Does anybody know a good example how to deal with network or server failures in GO? Or should the application just panic and let the OS create a new instance of the application? The client application will run as a daemon so users can not interact with it.

  • GitHub repo layotto

    A fast and efficient cloud native application runtime

    Project mention: Layotto: Combine Service Mesh,Multi-Runtime and FaaS into One Sidecar | news.ycombinator.com | 2021-08-11
  • GitHub repo kubemq-community

    KubeMQ is a Kubernetes native message queue broker

    Project mention: Which library/project do you wish was ported to golang? | reddit.com/r/golang | 2022-01-09

    https://kubemq.io/ is an alternative in go

  • GitHub repo pubsub

    A simple pubsub package for go.

  • GitHub repo Bus

    🔊Minimalist message bus implementation for internal communication with zero-allocation magic on Emit

  • GitHub repo fpGo

    Monad, Functional Programming features for Golang

  • GitHub repo kiara

    Backend-agnostic, lightweight pub/sub library which makes it easy for Go applications to communicate with each other.

    Project mention: Kiara: Go equivalent of Phoenix PubSub | reddit.com/r/golang | 2021-02-13
  • GitHub repo pulse

    ☁EventBus on Portable Pub/Sub Components☄ (by silverswords)

    Project mention: Share My design and Code: a cloud event bus based on portable MQs. | reddit.com/r/golang | 2021-03-16

    https://github.com/silverswords/pulse Yeah, the cloud event bus reconstruction that lasted for two weeks (two months) finally worked again. Welcome, all the brothers to add Star [Celebrate].

  • GitHub repo styx

    Simple, high-performance event streaming broker (by thibauts)

    Project mention: ZooKeeper-free Kafka is out. First Demo | news.ycombinator.com | 2021-03-30

    Hi Alexander ! I'm a big fan of the work you do at vectorizedio and of your blog posts ! I strongly believe there's a need for much simpler event streaming and room for improvement performance-wise.

    I took a different path by divorcing from the Kafka protocol and experimenting with what I believe is a simpler to model approach to reliable event processing [1].

    [1] https://github.com/dataptive/styx/blob/master/docs/howto/rel...

  • GitHub repo varnish-towncrier

    Distribute cache invalidation requests to a fleet of varnish instances.

    Project mention: How to create a full page cache within a CMS? | reddit.com/r/golang | 2021-07-25

    Having said that, varnish is an excellent tool for these situations and it also works well if you decide to use a CDN later on. We use the combination of varnish (caching for dynamic content) and Cloudflare (caching for static assets) in a couple of production environments and using the relatively recent CDN-Cache-Control headers it's finally pretty easy to separate cache control headers of various different links in your proxy chain. Be aware that cache tagging requires an additional module (xkey vmod) which isn't always shipped with varnish packages. To help with cache invalidations you can also use tools like Varnish Broadcaster (commercial) or (shameless plug) varnish-towncrier which decouples cache invalidation calls from varnish and doesn't require your application to directly talk to each varnish instance.

  • GitHub repo kubemqctl

    Kubemqctl is a command line interface (CLI) for KubeMQ , Kubernetes Message Broker

    Project mention: Kubernetes-based development with Devspace | dev.to | 2021-10-15

    Our message queue is probably redismq, rabbitmq or kubemq, for which we also easily find helm charts.

  • GitHub repo Cluster

    Golang Package for System Clustering. (by Clivern)

    Project mention: Clivern/Cluster - Golang Package for System Clustering. | reddit.com/r/golang | 2021-06-20
  • GitHub repo pm

    Thin Cloud Pub/Sub client wrapper which lets you manage publishing / subscribing with pluggable middleware. (by k-yomo)

    Project mention: Introducing Cloud Pub/Sub manager | reddit.com/r/googlecloud | 2021-04-04

    Please check it out! https://github.com/k-yomo/pm

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 2022-01-11.

Go Pubsub related posts


What are some of the best open-source Pubsub projects in Go? This list will help you:

Project Stars
1 dapr 16,692
2 Centrifugo 5,742
3 Gizmo 3,580
4 emitter-io 3,154
5 liftbridge 2,193
6 Olric 2,081
7 beaver 1,302
8 centrifuge 563
9 mangos 475
10 layotto 400
11 kubemq-community 393
12 pubsub 364
13 Bus 242
14 fpGo 221
15 kiara 135
16 pulse 37
17 styx 31
18 varnish-towncrier 24
19 kubemqctl 23
20 Cluster 12
21 pm 5
Find remote jobs at our new job board 99remotejobs.com. There are 29 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
OPS - Build and Run Open Source Unikernels
Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.