Skip to content

Releases: centrifugal/centrifugo

v4.0.0-beta.1

09 Jul 19:01
0fef0b1
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

This is a first beta release of Centrifugo v4. Please refer to Centrifugo v4 roadmap for latest details about v4 (and docs on centrifugal.dev already have almost finished docs for v4).

Some useful docs:

We now have Centrifugo v4 beta and recently released centrifuge-js v3.0.0-beta.0. So it's already possible to try things out without using custom branches etc.

Obviously, this release is not for production usage, and some changes can still happen. Please reach out in community chat if you want to try beta release but came across questions/issues - highly appreciate the feedback.

v3.2.3

30 Jun 11:55
dce2f02
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server in a language-agnostic way. It can be a missing piece in your application infrastructure for introducing real-time features. Think chats, live comments, multiplayer games, streaming metrics – you'll be able to build amazing web and mobile real-time apps with a help of Centrifugo. Choose the approach you like:

  • bidirectional communication over WebSocket or SockJS
  • or unidirectional communication over WebSocket, EventSource (Server-Sent Events), HTTP-streaming, GRPC
  • or... combine both!

See centrifugal.dev for more information.

Release notes

No backwards incompatible changes here.

Improvements

  • Support Debian bullseye DEB package release, drop Debian jessie, #520

Fixes

v3.2.2

08 Jun 18:19
d270ad5
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server in a language-agnostic way. It can be a missing piece in your application infrastructure for introducing real-time features. Think chats, live comments, multiplayer games, streaming metrics – you'll be able to build amazing web and mobile real-time apps with a help of Centrifugo. Choose the approach you like:

  • bidirectional communication over WebSocket or SockJS
  • or unidirectional communication over WebSocket, EventSource (Server-Sent Events), HTTP-streaming, GRPC
  • or... combine both!

See centrifugal.dev for more information.

Release notes

No backwards incompatible changes here.

Fixes

  • Fix top-level granular subscribe and publish proxies #517.

Misc

  • This release is built with Go 1.17.11.

v3.2.1

30 May 14:38
b455ff1
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server in a language-agnostic way. It can be a missing piece in your application infrastructure for introducing real-time features. Think chats, live comments, multiplayer games, streaming metrics – you'll be able to build amazing web and mobile real-time apps with a help of Centrifugo. Choose the approach you like:

  • bidirectional communication over WebSocket or SockJS
  • or unidirectional communication over WebSocket, EventSource (Server-Sent Events), HTTP-streaming, GRPC
  • or... combine both!

See centrifugal.dev for more information.

Release notes

No backwards incompatible changes here.

Improvements

  • Centrifugo now periodically sends anonymous usage information (once in 24 hours). That information is impersonal and does not include sensitive data, passwords, IP addresses, hostnames, etc. Only counters to estimate version and installation size distribution, and feature usage. See implementation in #516. Please do not disable usage stats sending without reason. If you depend on Centrifugo – sure you are interested in further project improvements. Usage stats help us understand Centrifugo use cases better, concentrate on widely-used features, and be confident we are moving in the right direction. Developing in the dark is hard, and decisions may be non-optimal. See docs for more details.

Misc

  • We continue working on Centrifugo v4, look at our v4 roadmap where the latest updates are shared. BTW Centrifugo v3 already has code to work over new protocol which we aim to make default in v4. It's already possible to try out our own bidirectional emulation layer with HTTP-streaming and Eventsource transports. Don't hesitate reaching out if you depend on Centrifugo and want to understand more what's coming in next major release. We are actively collecting feedback at the moment.
  • This release is built with Go 1.17.10.

v3.2.0

29 Apr 13:35
94f0c2f
Compare
Choose a tag to compare

Centrifugo is a language-agnostic real-time messaging server. It handles persistent connections from application users (established over WebSocket, HTTP-streaming, SSE/EventSource, GRPC, SockJS transports) and provides API to publish messages to online users in real-time. Centrifugo scales well to load-balance client connections over a cluster of Centrifugo nodes. Chats, live comments, multiplayer games, streaming metrics can be built on top of Centrifugo messaging system. See Centrifugo docs for more information.

Release notes

This release contains backwards incompatible changes in experimental Tarantool engine (see details below).

Improvements

  • Support checking aud and iss JWT claims #496. See more details in docs: aud, iss.
  • Channel Publication now has tags field (map[string]string) – this is a map with arbitrary keys and values which travels with publications. It may help to put some useful info into publication without modifying payload. It can also help to avoid processing payload in some scenarios. Publish and broadcast server APIs got support for setting tags. Though supporting this field throughout our ecosystem (for example expose it in all our client SDKs) may take some time. Server API docs for publish and broadcast commands have been updated.
  • Support setting user for Redis ACL-based auth, for Redis itself and for Sentinel. See in docs.
  • Unidirectional transports now return a per-connection generated session unique string. This unique string attached to a connection on start, in addition to client ID. It allows controlling unidirectional connections using server API. Previously we suggested using client ID for this – but turns out it's not really a working approach since client ID can be exposed to other users in Publications, presence, join/leave messages. So backend can not distinguish whether user passed its own client ID or not. With session which is not shared at all things work in a more secure manner. Server API docs for subscribe, unsubscribe, disconnect and refresh commands have been updated. Below you can find a video where we have two clients connected over unidirectional HTTP-streaming and we are using disconnect API to disconnect one of them by session.
  • Report line and column for JSON config file syntax error – see #497
  • Improve performance (less memory allocations) in message broadcast, during WebSocket initial connect and during disconnect.

Breaking changes

  • Breaking change in experimental Tarantool integration. In Centrifugo v3.2.0 we updated code to work with a new version of tarantool-centrifuge. tarantool-centrifuge v0.2.0 has an updated space schema. This means that Centrifugo v3.2.0 will only work with tarantool-centrifuge >= v0.2.0 or rotor >= v0.2.0. We do not provide any migration plan for this update – spaces in Tarantool must be created from scratch. We continue considering Tarantool integration experimental.

Misc

  • This release is built with Go 1.17.9.
  • We continue working on client protocol v2. Centrifugo v3.2.0 includes more parts of it and includes experimental bidirectional emulation support. More details in #515.
  • Check out our progress regarding Centrifugo v4 in #500.
  • New community-driven Centrifugo server API library Centrifugo.AspNetCore for ASP.NET Core released.
session.mp4

v3.1.1

08 Dec 08:53
83c62cf
Compare
Choose a tag to compare

Centrifugo is an open-source scalable real-time messaging server in a language-agnostic way. It can be a missing piece in your application infrastructure for introducing real-time features. Think chats, live comments, multiplayer games, streaming metrics – you'll be able to build amazing web and mobile real-time apps with a help of Centrifugo. Choose the approach you like:

  • bidirectional communication over WebSocket or SockJS
  • or unidirectional communication over WebSocket, EventSource (Server-Sent Events), HTTP-streaming, GRPC
  • or... combine both!

See centrifugal.dev for more information.

Release notes

No backwards incompatible changes here.

Improvements:

  • Massive JSON client protocol performance improvements in decoding multiple commands in a single frame. See #215 for details.
  • General JSON client protocol performance improvements for unmarshalling messages (~8-10% according to #215)
  • Subscribe proxy can now proxy custom data from a client passed in a subscribe command.

This release is built with Go 1.17.4.

Docker images

  • docker pull centrifugo/centrifugo:v3.1.1
  • docker pull centrifugo/centrifugo:v3
  • docker pull centrifugo/centrifugo:v3.1

v3.1.0

07 Nov 07:32
75fc00d
Compare
Choose a tag to compare

No backwards incompatible changes here.

Improvements:

Also check out new tutorials in our blog (both examples can be run with single docker compose up command):

Centrifugo dashboard for Grafana was updated and now uses $__rate_interval function of Grafana.

This release is built with Go 1.17.3.

Docker images

  • docker pull centrifugo/centrifugo:v3.1.0
  • docker pull centrifugo/centrifugo:v3
  • docker pull centrifugo/centrifugo:v3.1

v3.0.5

18 Oct 14:27
f5f510b
Compare
Choose a tag to compare

No backwards incompatible changes here.

Fixes:

  • Fix subscription cleanup on client close. Addresses one more problem found in this report.

Docker images

  • docker pull centrifugo/centrifugo:v3.0.5
  • docker pull centrifugo/centrifugo:v3
  • docker pull centrifugo/centrifugo:v3.0

v3.0.4

16 Oct 14:35
9f647bf
Compare
Choose a tag to compare

No backwards incompatible changes here.

Fixes:

  • Fix deadlock during PUB/SUB sync in channels with recovery. Addresses this report. Can help if you observe wrong number of client connections (large than it should).
  • Fix redis_db option: was ignored previously – #487.

Docker images

  • docker pull centrifugo/centrifugo:v3.0.4
  • docker pull centrifugo/centrifugo:v3
  • docker pull centrifugo/centrifugo:v3.0

v3.0.3

11 Oct 07:29
b3c4218
Compare
Choose a tag to compare

No backwards incompatible changes here.

Fixes:

  • Fix passing data from subscribe proxy result towards client connection.

This release is built with Go 1.17.2.

Docker images

  • docker pull centrifugo/centrifugo:v3.0.3
  • docker pull centrifugo/centrifugo:v3
  • docker pull centrifugo/centrifugo:v3.0