Skip to content

Releases: anycable/anycable-go

1.4.6

26 Oct 00:04
Compare
Choose a tag to compare

Changes

  • Infer RPC implementation from RPC host.

    Feel free to drop rpc_impl configuration parameter.

  • Enhance Fly configuration preset to enable embedded NATS and configure HTTP broadcaster port.

1.4.5

16 Oct 05:47
Compare
Choose a tag to compare

Features

  • Added batch broadcasts support.
  • Added broadcast options support (e.g., exclude_socket)

See API docs and Rails docs.

Fixes

  • Fixed passing session ID over HTTP RPC
  • Fix recognizing database number in Redis URLs

1.4.4

08 Sep 03:32
Compare
Choose a tag to compare

Features

  • Added Server-Sent Events support.

See documentation.

1.4.3

11 Aug 04:53
Compare
Choose a tag to compare

Features

  • Added ability to require pong messages from clients (for better detection of broken connections).

Use --pong_timoout=<number of seconds to wait for ping> option to enable this feature.

  • Added ability to configure ping interval and ping timestamp precision per connection.

You can use URL query params to configure ping interval and timestamp precision per connection:

For example, using the following URL, you can set the ping interval to 10 seconds and the timestamp precision to milliseconds:

ws://localhost:8080/cable?pi=10&ptp=ms
  • PRO: Added support for binary version of the extended protocol (actioncable-v1-ext-msgpack and actioncable-v1-ext-protobuf).

Fixes

  • Minor memory broker fixes.

1.4.2

04 Aug 19:58
Compare
Choose a tag to compare

Changes

  • The --disconnect_timeout parameter has been replaced by the --shutdown_timeout.

The new option specify the max time for the whole graceful shutdown process, not only clients disconnecting.

Also, disconnecting clients on shutdown now happens in parallel. You can control the number of executors via the --shutdown_pool_size configuration option (so, setting it to 1 would result in the previous behaviour).

  • PRO: In the PRO version, we added a slow drain mode for disconnection. See the docs for more information.

Fixes

  • Fixed panic when using memory backend for reliable streams (#183).

1.4.1

25 Jul 04:10
Compare
Choose a tag to compare

Features

  • Enhanced TLS support for RPC clients.

1.4.0

08 Jul 03:34
Compare
Choose a tag to compare

Highlights

  • Reliable streams and resumable sessions.

AnyCable-Go improves data consistency of your real-time applications by allowing clients to request the missed messages on re-connection and restore their state without re-authentication and re-subscription to channels.

See documentation for details.

  • RPC over HTTP.

AnyCable now supports RPC over HTTP communication as an alternative to gRPC one. This allows you to embed AnyCable RPC part into your web server (e.g., Puma) without requiring a separate process or port. This is especially useful for Heroku deployments.

See documentation for details.

Features

  • Redis X broadcasting adapter.

Redis X is a new broadcasting adapter that use Redis Streams instead of Publish/Subscribe to deliver broadcasting messages from your application to WebSocket servers. This is another step towards improved consistency: no message broadcasted from your application will be lost, even if WebSocket servers are temporarily unavailable. This is especially useful in combination with reliable streams.

See documentation for details.

Changes

  • Broadcasted messages are now delivered in the order they were received by the server.

Previously, we used an executor pool internally to deliver broadcasted messages concurrently (to reduce the latency). That led to nonderterministic order of messages within a single stream delivered in a short period of time. Now, we preserve the order of messages within a stream—the delivered as they were accepted by the server.

  • New disconnect modes and --disable_disconnect deprecation.

AnyCable-Go becomes smarter with regards to performing Disconnect calls. In the default mode ("auto"), clients not relying on #disconnect / #unsubscribed callbacks do not trigger Disconnect RPC calls on connection close. Thus, if you use JWT identification and Hotwire signed streams with AnyCable-Go, you don't need to worry about the --disable_disconnect option to use AnyCable in the RPC-less mode.

The previous --disable_disconnect behaviour can be achieved by setting --disconnect_mode=never.

1.4.0-rc.3

05 Jul 19:31
Compare
Choose a tag to compare
1.4.0-rc.3 Pre-release
Pre-release

Features

See release notes.

1.4.0-rc.2

07 Jun 20:34
Compare
Choose a tag to compare
1.4.0-rc.2 Pre-release
Pre-release

Second release candidates for 1.4.0.

See release notes.

1.4.0-rc.1

19 Apr 19:22
Compare
Choose a tag to compare
1.4.0-rc.1 Pre-release
Pre-release

First release candidates for 1.4.0.

See release notes.