Centrifugo v4 released – with own WebSocket emulation layer, optimized client protocol, unified SDK behavior, experimental HTTP/3 and WebTransport support

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • ws

    Tiny WebSocket library for Go. (by gobwas)

    Oh, thanks! And sorry for still not switching to https://github.com/gobwas/ws :)

  • 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.

    Thanks! BTW, Centrifugo's core is based on https://github.com/centrifugal/centrifuge Go library - which theoretically can be more flexible and extensible solution for Go developers than Centrifugo server since server dictates some auth/permission/channel/api rules.

  • 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.

  • Mercure

    🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications

    I actually was thinking about this when I saw https://github.com/dunglas/mercure project to become a Caddy plugin. But I did not find enough reasoning to try this with Centrifugo at that point, and still... Seems awesome from one side - tight integration with a web-server, no extra network between LB and Centrifugo. But will this be useful in practice and find its users? 🤔 That's the question I don't have an answer yet.

  • jetstream

    Discontinued JetStream Utilities (by nats-io)

    Centrifugo can use Nats as PUB/SUB broker. I also tried to use Jetstream to implement Centrifugo history/recovery semantics – unfortunately Jetstream does not fit us very well as streams must be created over a separate call to admin API, and it's not possible to iterate/paginate over Jetstream streams to be suitable to current Centrifugo message history and recovery semantics (I asked about support for this – unfortunately the issue was closed and required API not implemented - https://github.com/nats-io/jetstream/issues/266, suggested solution is far from optimal for our use case).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts