All Versions
Latest Version
Avg Release Cycle
36 days
Latest Release

Changelog History
Page 4

  • v2.2.0 Changes

    March 23, 2019

    ๐Ÿš€ This release is based on latest refactoring of Centrifuge library. The refactoring opens a road for possible interesting improvements in Centrifugo โ€“ such as possibility to use any PUB/SUB broker instead of Redis (here is an example of possible integration with Nats server), or even combine another broker with existing Redis engine features to still have recovery and presence features. Though these ideas are not implemented in Centrifugo yet. Performance of broadcast operations can be slightly decreased due to some internal changes in Centrifuge library. Also take a close look at backwards incompatible changes section below for one breaking change.

    ๐Ÿ‘Œ Improvements:

    • Track client position in channels with history_recover option enabled and disconnect in case of insufficient state. This resolves an edge case when messages could be lost in channels with history_recover option enabled after node reconnect to Redis (imagine situation when Redis was unavailable for some time but before Centrifugo node reconnects publisher was able to successfully send a message to channel on another node which reconnected to Redis faster). With new mechanism client won't miss messages though can receive them with some delay. As such situations should be pretty rare on practice it should be a reasonable compromise for applications. New mechanism adds more load on Redis as Centrifugo node periodically polls channel history state. The load is linearly proportional to amount of active channels with history_recover option on. By default Centrifugo will check client position in channel stream not often than once in 40 seconds so an additional load on Redis should not be too high
    • โž• New options for more flexible conrol over exposed endpoint interfaces and ports: internal_address, tls_external, admin_external. See description calling centrifugo -h. #262, #264
    • Small optimizations in Websocket and SockjS transports writes
    • Server initiated disconnect number metrics labeled with disconnect code

    Backwards incompatible changes:

    • ๐Ÿš€ This release removes a possibility to set uid to Publication over API. This feature was not documented in API reference and uid field does not make sense to be kept on client protocol top level as in Centrifugo v2 it does not serve any internal protocol purpose. This is just an application specific information that can be put into data payload

    ๐Ÿš€ Release is based on Go 1.12.x

    ๐Ÿณ Docker images

    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.2.0
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.2
    • ๐Ÿณ docker pull centrifugo/centrifugo:latest
  • v2.1.0 Changes

    December 30, 2018

    ๐Ÿš€ This release contains changes in metric paths exported to Graphite, you may need to fix your dashboard when upgrading. Otherwise everything in backwards compatible.

    ๐Ÿ‘Œ Improvements:

    • โ™ป๏ธ Refactored export to Graphite, you can now control aggregation interval using graphite_interval option (in seconds), during refactoring some magical path transformation was removed so now we have more predictable path generation. Though Graphite paths changed with this refactoring
    • โœ… Web interface rewritten using modern Javascript stack - latest React, Webpack instead of Gulp, ES6 syntax
    • Aggregated metrics also added to info command reply. This makes it possible to look at metrics in admin panel too when calling info command
    • ๐Ÿ‘€ More options can be set over environment variables โ€“ see #254
    • ๐Ÿ‘€ Healthcheck endpoint โ€“ see #252
    • ๐Ÿ†• New important chapter in docs โ€“ integration guide
    • ๐Ÿ‘Œ Support setting api_key when using Deploy on Heroku button
    • Better timeout handling in Redis engine โ€“ client timeout is now bigger than default redis_read_timeout so application can more reliably handle errors

    ๐Ÿ›  Fixes:

    • ๐Ÿณ Dockerfile had no correct WORKDIR set so it was only possible to use absolute config file path, now this is fixed in this commit
    • ๐ŸŒ Show node version in admin web panel
    • ๐Ÿ›  Fix possible goroutine leak on client connection close, commit

    ๐Ÿณ Docker images

    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.1.0
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.1
    • ๐Ÿณ docker pull centrifugo/centrifugo:latest
  • v2.0.2 Changes

    November 04, 2018

    Important If you are using rpm or deb packages from then you have to re-run the installation method of your choice for Centrifugo repository. This is required to update GPG key used. This is a standard process that all packages hosted on packagecloud should do.

    ๐Ÿ‘Œ Improvements:

    • โšก๏ธ Redis TLS connection support - see issue in Centrifuge lib and updated docs
    • ๐Ÿ‘€ Do not send Authorization header in admin web interface when insecure admin mode enabled - helps to protect admin interface with basic authorization (see #240)

    ๐Ÿ›  Fixes:

    • Resubscribe only to shard subset of channels after reconnect to Redis (issue)

    ๐Ÿณ Docker images

    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.0.2
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.0
    • ๐Ÿณ docker pull centrifugo/centrifugo:latest
  • v2.0.1 Changes

    October 15, 2018

    ๐Ÿš€ This release has several fixes and performance improvements

    ๐Ÿ‘Œ Improvements:

    • โœ… Use latest SockJS url (SockJS version 1.3) for iframe transports
    • ๐Ÿ‘Œ Improve performance of massive subscriptions to different channels
    • ๐Ÿ‘ Allow dot in namespace names

    ๐Ÿ›  Fixes:

    • ๐Ÿ›  Fix of possible deadlock in Redis Engine when subscribe operation fails
    • ๐Ÿ›  Fix admin web interface logout issue when session expired
    • ๐Ÿ›  Fix io timeout error when using Redis Engine with sharding enabled
    • ๐Ÿ›  Fix checkconfig command
    • ๐Ÿ›  Fix typo in metric name - see #233

    ๐Ÿณ Docker images

    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.0.1
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.0
    • ๐Ÿณ docker pull centrifugo/centrifugo:latest
  • v2.0.0 Changes

    September 18, 2018

    ๐Ÿ“š This is a new major version of Centrifugo. New version has some important changes and useful features โ€“ read new documentation.

    Centrifugo v2 serves the same purpose as Centrifugo v1. Centrifugo v2 is not backwards compatible with v1 โ€“ migration to it will require adapting both backend and frontend sides of your application (of course if you decide to migrate).

    Centrifugo is now based on new library centrifuge for Go language. That library can be used standalone to get even more than Centrifugo server provides โ€“ like custom authentication, your own permission management, asynchronous message passing, RPC calls etc.

    Highlights of v2:

    • 0๏ธโƒฃ Cleaner and more structured client-server protocol defined in protobuf schema. Protocol is more compact because some fields with default values that were sent previously now omitted
    • ๐Ÿ‘ Binary Websocket support (Protobuf). Protobuf allows to transfer data in much more compact and performant way than before. Of course JSON is still the main serialization format
    • JWT for authentication and private channel authorization instead of hand-crafted HMAC sign. This means that there is no need in extra libraries to generate connection and subscription tokens. There are plenty of JWT libraries for all languages
    • Prometheus integration and automatic export of stats to Graphite. Now Centrifugo easily integrates in modern monitoring stack โ€“ no need to manually export stats
    • โ™ป๏ธ Refactored Javascript (ES6), Go and gomobile client libraries
    • Simplified HTTP API authentication (no request body signing anymore)
    • GRPC for server API
    • ๐Ÿ†• New presence_stats API command to get compact presence information - how many clients and unique users in channel
    • ๐ŸŒฒ Structured logging with colored output during development
    • ๐Ÿ”€ Mechanism to automatically merge several Websocket messages into one to reduce syscall amount thus be more performant under heavy load
    • ๐Ÿ‘ Better recovery algorithm to fix several recovered flag false positives
    • ๐Ÿš€ Goreleaser for automatic releases to Github

    ๐Ÿš€ Some things were removed from Centrifugo in v2 release:

    • Publishing over Redis queue
    • Admin websocket endpoint
    • Client limited channels
    • โฌ‡๏ธ Channel option history_drop_inactive now gone
    • ๐Ÿ‘ Websocket prepared message support (though this one can be pushed back at some point).

    ๐Ÿ“š Documentation contains actual information and tips about migration from v1.

    ๐Ÿ’Ž As mentioned above new version uses JWT tokens for authentication and private channel authorization. And there is no API request body signing anymore. This all means that using API clients (like cent, phpcent, jscent, rubycent, gocent before) is not necessary anymore โ€“ you can use any JWT library for your language and just send commands from your code โ€“ this is just simple JSON objects. Though API libraries still make sense to simplify integration a bit.

    Currently the following clients work with v2:

    • ๐Ÿ’ป centrifuge-js โ€“ for browser, NodeJS and React Native.
    • centrifuge-go - for Go language.
    • centrifuge-mobile - for iOS and Android using centrifuge-go and gomobile project.
    • ๐Ÿšง centrifuge-dart โ€“ for Dart and Flutter. This lib is WIP and does not support all features yet.

    โšก๏ธ At moment there are no native mobile clients. I.e. centrifuge-ios and centrifuge-android have not been updated to Centrifugo v2 yet.

    ๐Ÿณ Docker images

    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.0.0
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2
    • ๐Ÿณ docker pull centrifugo/centrifugo:v2.0
    • ๐Ÿณ docker pull centrifugo/centrifugo:latest
  • v2.0.0-beta.1 Changes

    August 05, 2018

    ๐Ÿ”„ Changelog

    ๐Ÿ›  Several fixes compared to previous alpha:

    • โž• add subscription expiration delay
    • โšก๏ธ update admin web interface to latest version
    • ๐Ÿ do not use colored logging into console on Windows

    ๐Ÿณ Docker images

    • ๐Ÿณ docker pull fzambia/centrifugo2:v2.0.0-beta.1
    • ๐Ÿณ docker pull fzambia/centrifugo2:v2
    • ๐Ÿณ docker pull fzambia/centrifugo2:v2.0
    • ๐Ÿณ docker pull fzambia/centrifugo2:latest
  • v2.0.0-alpha.2 Changes

    July 17, 2018

    ๐Ÿ”„ Changelog

    ๐Ÿš€ For alpha release there is no changelog - see #221 about Centrifugo v2

    ๐Ÿ“š Documentation

    ๐Ÿ“š Centrifugo v2 will have new documentation.


    ๐Ÿš€ Clients are not released yet but you can find them in c2 branches:

    • ๐Ÿ’ป centrifuge-js โ€“ for browser, NodeJS and React Native.
    • centrifuge-go - for Go language.
    • centrifuge-mobile - for iOS and Android using centrifuge-go as basis and gomobile project to create bindings.

    ๐Ÿณ Docker images

    ๐Ÿš€ For pre-releases Docker images use fzambia namespace but non pre-release versions will use centrifugal namespace as before.

    • ๐Ÿณ docker pull fzambia/centrifugo2:v2.0.0-alpha.2
    • ๐Ÿณ docker pull fzambia/centrifugo2:v2
    • ๐Ÿณ docker pull fzambia/centrifugo2:v2.0
    • ๐Ÿณ docker pull fzambia/centrifugo2:latest
  • v1.8.0 Changes

    June 24, 2018

    No backwards incompatible changes here.

    Please look at issue about Centrifugo v2.

    ๐Ÿ”‹ Features

    • ๐Ÿ“ฆ package for Ubuntu 18.04
    • โž• add Centrifugo version to stats output. Also add rusage stime and utime values to metrics. See #222 for details. Thanks to @Sannis for contributions
    • ๐Ÿ”ฆ expose more configuration options to be set over environment variables. See commit and related issue
    • ๐Ÿ‘€ more context in debug logs regarding to client connection. See #201
    • ๐Ÿ›  fix deb package upgrade - see #219 for details


    • ๐Ÿ— using Go 1.10.3 for builds
  • v1.7.9 Changes

    No backwards incompatible changes here.

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix malformed JSON when using empty info in connection refresh request - see #214.

    ๐Ÿ”‹ Features

    • support ACME http_01 challenge using new ssl_autocert_http boolean option. Centrifugo will serve http_01 ACME challenge on port 80. See #210 for more details.


    • ๐Ÿ— using Go 1.10.1 for builds
  • v1.7.8 Changes

    No backwards incompatible changes here.

    ๐Ÿ›  Fixes

    • ๐Ÿš€ the fix of goroutine leak in 1.7.7 was incomplete - looks like in this release the problem described in #207 gone away.