Add grpc_kit
to your Gemfile and specify ANYCABLE_GRPC_IMPL=grpc_kit
env var to use it.
-
Setting the redis driver to ruby specified. (@smasry)
-
Add mutual TLS support for connections to Redis. (@Envek)
ANYCABLE_REDIS_TLS_CLIENT_CERT_PATH
andANYCABLE_REDIS_TLS_CLIENT_KEY_PATH
settings to specify client certificate and key when connecting to Redis server that requires clients to authenticate themselves.
- Add
ANYCABLE_REDIS_TLS_VERIFY
setting to disable validation of Redis server TLS certificate. (@Envek)
- Pass unique connection id (session id) in the
anycable.sid
Rack env field. (@palkan)
- Allow Ruby 2.6.
-
Fix RBS signature. (@palkan)
-
Add empty (
''
) service to gRPC health check as "NOT_SERVING". (@palkan)
- Drop Ruby 2.6 support.
- Do not swallow
grpc
missing .so exceptions. (@palkan)
- Added support for type coercion from Anyway Config 2.2. (@palkan)
- Improved gRPC server args support. (@palkan)
Add ability to declare gRPC server args without namespacing (i.e., "max_connection_age_ms"
instead of "grpc.max_connection_age_ms"
). That makes it possible to use ENV vars to provide the gRPC configuration.
- Fixed error message when RPC implementation is missing. (@palkan)
We haven't extracted anycable-grpc
yet.
- No changes since 1.1.0.rc1.
- BREAKING Move middlewares from gRPC interceptors to custom implementation. (@palkan)
That allowed us to have real middlewares with ability to modify responses, intercept exceptions, etc. The API changed a bit:
class SomeMiddleware < AnyCable::Middleware
- def call(request, rpc_call, rpc_handler)
+ def call(rpc_method_name, request, metadata)
yield
end
end
- Ruby >= 2.6 is required.
- Anyway Config >= 2.1 is required.
- Ruby 3.0 compatibility. (@palkan)
- Handle TLS Redis connections by using VERIFY_NONE mode. (@palkan)
- Support providing passwords for Redis Sentinels. (@palkan)
Use the following format: ANYCABLE_REDIS_SENTINELS=:password1@my.redis.sentinel.first:26380,:password2@my.redis.sentinel.second:26380
.
-
Add
embedded
option to CLI runner. (@palkan) -
Add
Env#istate
andEnvResponse#istate
to store channel state. (@palkan)
That would allow to mimic instance variables usage in Action Cable channels.
- Add
CommandResponse#stopped_streams
to support unsubscribing from particular broadcastings. (@palkan)
Socket#unsubscribe
is now implemented as well.
- Add
AnyCable.broadcast_adapter#broadcast_command
method. (@palkan)
It could be used to send commands to WS server (e.g., remote disconnect).
Using anycable-go
v1.x is required.
Server must sent protov
metadata with the supported versions (comma-separated list). If there is no matching version an exception is raised.
Current RPC proto version is v1.
- Added
request
support to channels. (@palkan)
Now you can access request
object in channels, too (e.g., to read headers/cookies/URL/etc).
- Change default server address from
[::]:50051
to127.0.0.1:50051
. (@palkan)
See #71.
- Fix building Redis Sentinel config. (@palkan)
See Changelog for versions <1.0.0.