Skip to content

Releases: centrifugal/centrifugo

v6.0.2

03 Feb 05:40
49bfcb9
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, 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 development build warning in logs #934. On start, if Centrifugo is built from source without proper version attached (which is done in CI upon release workflow), the warning is now shown in logs.

Fixes

  • Fix not using redis prefix for Redis stream support check centrifugal/centrifuge#456. Addresses issue with Redis ACL, see #935.
  • Only non-empty tokens will be redacted in info logs now, which allows to distinguish the case when token was not sent at all, centrifugal/centrifuge#455
  • Redact header values upon writing info logs with connect command since they can contain sensitive values, centrifugal/centrifuge#458

Miscellaneous

v6.0.1

21 Jan 08:55
9abee5b
Compare
Choose a tag to compare

Centrifugo v6 was recently released 💻✨🔮✨💻. See the details in the Centrifugo v6 release blog post.

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, 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 is a patch version bump to use latest Go version for builds to inherit security fixes. There are also internal fixes for better go tooling integration.

Miscellaneous

v6.0.0 released 💻✨🔮✨💻

16 Jan 08:28
cf07a3e
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, WebTransport). Centrifugo has the concept of a channel – so it's a user-facing PUB/SUB server.

What changed in Centrifugo v6

A new major release of Centrifugo – v6 – is now live! This release includes fundamental improvements in the configuration to simplify working with Centrifugo from both user and core development perspectives. It also adds several useful features and enhances observability for both Centrifugo OSS and Centrifugo PRO.

See the details in the Centrifugo v6 release blog post

Main highlight:

See also Centrifugo v6 migration guide

Miscellaneous

v5.4.9

23 Dec 09:38
0bc378a
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, 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

Fixes

  • Fix a deadlock during pub/sub and recovery sync when using Redis engine and server-side subscriptions, fixes #925
  • Fix pause/resume race in Kafka async consumer #927 – the race could lead to a partition non being processed, while in normal condition the chance of the race is minimal, this was observed in a real system under CPU throttling conditions.
  • Fix flaky TestHandleRefreshWithoutProxyServerStart test #920 by @makhov

Miscellaneous

  • This release is built with Go 1.23.4.
  • Check out the Centrifugo v6 roadmap. It outlines important changes planned for the next major release. We have already started working on v6 and are sharing updates in the issue and our community channels.
  • See also the corresponding Centrifugo PRO release.

v5.4.8

08 Dec 09:27
6e046e5
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, 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

Fixes

  • Kafka async consumer: fix potential loss of records under load #917
  • Centrifugo now does not log tokens when writing INFO level log entry about client error caused by command processing.

Miscellaneous

  • This release is built with Go 1.23.4.
  • Check out the Centrifugo v6 roadmap. It outlines important changes planned for the next major release. We have already started working on v6 and are sharing updates in the issue and our community channels.
  • See also the corresponding Centrifugo PRO release.

v5.4.7

06 Nov 06:41
f40a795
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, 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

Fixes

  • Centrifugo now does not log tokens when writing INFO level log entry about client disconnection caused by command processing. Thanks to @Dirk007 for submitting the fix.

Miscellaneous

  • This release is built with Go 1.23.2.
  • Check out the Centrifugo v6 roadmap. It outlines important changes planned for the next major release. We have already started working on v6 and are sharing updates in the issue and our community channels.
  • See also the corresponding Centrifugo PRO release.

v5.4.6

08 Oct 06:33
87dd057
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, 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

  • Added option to configure a custom token user ID claim. See #783. Although we still recommend using the sub claim, there are scenarios where a different claim name is required. You can now configure this using the token_user_id_claim option.
  • Connection durations are now logged as human-readable strings instead of nanoseconds. See centrifugal/centrifuge#416.

Fixes

  • Fixed Fossil delta construction in recovered publications. See centrifugal/centrifuge#415. This prevents bad checksum errors during recovery with delta compression enabled.
  • Handled the history meta key eviction scenario in Redis to avoid publish errors. See centrifugal/centrifuge#412. This fix addresses #888.
  • Full basic auth credentials are no longer displayed in proxy endpoint logs. See #890. The URL is now redacted in logs.
  • Fixed panic occurring during PostgreSQL consumer dispatch error handling. See #889.
  • Added missing delta_publish top-level default definition. See #896. This fix addresses an unknown option warning in logs on Centrifugo startup.

Miscellaneous

  • This release is built with Go 1.23.2.
  • Check out the Centrifugo v6 roadmap. It outlines important changes planned for the next major release. We have already started working on v6 and are sharing updates in the issue and in our community channels.
  • See also the corresponding Centrifugo PRO release.
  • BTW. The popular package for integrating Centrifugo with Laravel denis660/laravel-centrifugo has just received a major update! Version 5.0 introduces several significant improvements. Check out the release notes!

v5.4.5

14 Aug 05:31
b51de26
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, 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

  • Added an option to use Redis 7.4 hash field TTL for online presence #872. Redis 7.4 introduced the per HASH field TTL, which we now use for presence information by adding a boolean option redis_presence_hash_field_ttl. One benefit here is reduced memory usage in Redis for presence information, as fewer data needs to be stored (no separate ZSET structure to maintain). Depending on your presence data, you can achieve up to a 1.6x reduction in memory usage with this option. This also showed slightly better CPU utilization on the Redis side, as there are fewer keys to manage in LUA scripts during presence get, add, and remove operations. By default, Centrifugo will continue using the current presence implementation with ZSET, as the new option only works with Redis >= 7.4 and requires explicit configuration. See also the description of the new option in the Centrifugo documentation.

Fixes

  • Process connect proxy result subs #874, fixes #873. Also, the documentation contained wrong description of subscribe options override object, this was fixed in terms of centrifugal/centrifugal.dev#52.

Miscellaneous

  • Release is built with Go 1.22.6
  • Check out Centrifugo v6 roadmap issue. It outlines some important changes planned for the next major release. The date of the v6 release is not yet specified.
  • See also the corresponding Centrifugo PRO release.

v5.4.4

01 Aug 06:32
60d3746
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, 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

Fixes

Miscellaneous

  • Release is built with Go 1.22.5
  • Check out Centrifugo v6 roadmap issue. It outlines some important changes planned for the next major release. The date of the v6 release is not yet specified.
  • See also the corresponding Centrifugo PRO release.

v5.4.3

30 Jul 18:15
8c9971d
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, 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

  • Publish Centrifugo Protobuf definitions to Buf Schema Registry, see #863. This means that to use Centrifugo GRPC APIs it's now possible to depend on pre-generated Protobuf definitions instead of manually generating them from the schema file.
    • apiproto - definitions of server GRPC API
    • unistream - definitions of unidirectional GRPC stream
    • proxyproto - definitions of proxy GRPC API
  • New integer option grpc_api_max_receive_message_size (number of bytes). If set to a value > 0 allows setting grpc.MaxRecvMsgSize option for GRPC API server. The option controls the max size of message GRPC server can receive. By default, GRPC library uses 4194304 bytes (4MB).

Fixes

  • Fix occasional panic: DedicatedClient should not be used after recycled panic which could happen under load during problems with Redis connection.

Miscellaneous

  • Release is built with Go 1.22.5
  • All dependencies were updated to latest versions
  • Check out Centrifugo v6 roadmap issue. It outlines some important changes planned for the next major release. The date of the v6 release is not yet specified.