Skip to content

Releases: centrifugal/centrifugo

v5.1.2

25 Nov 12:34
5ed9015
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

Improvements

  • Avoid keeping zero offsets in history meta hash keys in Redis – slightly reduces memory consumption of Redis, see centrifugal/centrifuge#332

Fixes

  • Centrifugo v5.1.1 fixed Lua redis lib command arguments must be strings or integers script error for new Centrifugo setups and new keys in Redis, but have not provided solution to existing keys. In centrifugal/centrifuge/#331 we fixed it.
  • Updating github.com/redis/rueidis to v1.0.22 fixes unaligned atomics to run Centrifugo with Redis engine on 32-bit systems, some details

Misc

v5.1.1

31 Oct 18:59
2cc5753
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

Improvements

  • Option to extract client connection user ID from HTTP header #730. See documentation for it.
  • Speed up channel config operations by using atomic.Value and reduce allocations upon channel namespace extraction by using channel options cache, #727
  • New metrics for the size of messages sent and received by Centrifugo real-time transport. Transport messages metrics also include frame_type resolution. Finally all the metrics exposed by Centrifugo are described in docs - see Server observability -> Exposed metrics

Fixes

  • Fix Lua redis lib command arguments must be strings or integers script error when calling Redis reversed history and the stream metadata key does not exist, #732
  • Fix Centrifugo logo image link in our Grafana dashboard - new revision uploaded

Misc

  • Dependencies updated (rueidis, quic-go, etc)
  • Improved logging for bidirectional emulation transports and unidirectional transports - avoid unnecessary error logs
  • If you represent a business and using Centrifugo - see also the release of Centrifugo PRO v5.1.1

v5.1.0

11 Oct 18:23
f0d3f79
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

Improvements

  • Support for EC keys in JWK sets and EC JWTs when using JWKS #720 by @shaunco, JWKS docs updated
  • Experimental GRPC proxy subscription streams #722 - this is like Websocketd but on network steroids 🔥. Streaming request semantics - both unidirectional and bidirectional – is now super-simple to achieve with Centrifugo and GRPC. See additional details about motivation, design, scalability concerns and basic examples in docs, and we provided standalone example for Go backend to experiment with
  • Transport error mode for server HTTP and GRPC APIs #690 - read more in docs
  • Support GRPC gzip compression #723. GRPC servers Centrifugo has now recognize gzip compression, proxy requests can optionally use compression for calls (see updated proxy docs).

Misc

  • Release is built with Go 1.21.3
  • Dependencies updated (crypto, otel, msgpack, etc)

New Contributors

Full Changelog: v5.0.4...v5.1.0

v5.0.4

28 Sep 04:33
ae2ed65
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

Improvements

  • Support expire_at field of SubscribeResult from Subscribe Proxy #707. See description of subscribe result in docs
  • Option to skip client token signature verification #708, see in docs

Fixes

Misc

  • Release is built with Go 1.21.1
  • Dependencies updated (centrifuge, quic-go, grpc, and others)

v5.0.3

04 Sep 19:10
391b46d
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

Improvements

  • Add support for GRPC exporter protocol in opentelemetry tracing, by @SinimaWath in #691. Can be enabled by setting OTEL_EXPORTER_OTLP_PROTOCOL environment variable, see updated doc

Misc

  • Release is built with Go 1.20.7
  • Dependencies updated (rueidis, quic-go, opentelemetry, etc)

New Contributors

Full Changelog: v5.0.2...v5.0.3

v5.0.2

07 Aug 16:25
709df2d
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

Improvements

  • Quiet mode and no expiration for gentoken/gensubtoken cli commands #681 - so token generation using cli helpers is more flexible now
  • Add proxy_static_http_headers option and static_http_headers key for granular proxy #687 - so it's possible to append custom headers to HTTP proxy requests.

Fixes

  • Suppress warnings about k8s env vars, see issue

Misc

  • Release is built with Go 1.20.7
  • Dependencies updated (rueidis, quic-go, crypto, etc)
  • Replace interface{} with any in code base, #682

v5.0.1

30 Jun 05:24
e14f622
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed

This release contains a fix for Centrifugo v5 released yesterday which prevents server from crashing in case of using subscription tokens.

Fixes

  • Fix panic upon subscription token validation caused by nil interface comparison, commit

v5.0.0 💻✨🔮✨💻

29 Jun 05:49
cfda338
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

What's changed in Centrifugo v5 🔥🔥🔥

In Centrifugo v5 we're phasing out old client protocol support, introducing a more intuitive HTTP API, adjusting token management behaviour in SDKs, improving configuration process, and refactoring the history meta ttl option. As the result you get a cleaner, more user-friendly, and optimized Centrifugo experience.

All the major details about the release may be found in Centrifugo v5 release announcement in our blog.

We've also prepared Centrifugo v5 migration guide which has more specific details about changes.

Misc

  • This release is built with Go 1.20.5

v4.1.5

24 Jun 10:51
c4c10dc
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

Release notes

Improvements

Fixes

  • Fix sending usage stats: handle max values reset race, fixes #667

v4.1.4

14 Jun 10:09
d2037ab
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server. Centrifugo can instantly deliver messages to application online users connected over supported transports (WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

Centrifugo is language-agnostic and can be used to build chat apps, live comments, multiplayer games, real-time data visualizations, collaborative tools, etc. in combination with any backend. It is well suited for modern architectures and allows decoupling the business logic from the real-time transport layer.

Several official client SDKs for browser and mobile development wrap the bidirectional protocol. In addition, Centrifugo supports a unidirectional approach for simple use cases with no SDK dependency.

For details, go to the Centrifugo documentation site.

Release notes

Fixes

  • Update Redis client to the latest version which properly connects to Redis Sentinel with ipv6 address