
AnyCable
AnyCable is a scalable WebSocket server for Ruby on Rails Action Cable, offering a Go server with RPC to Rails and support for Redis and other brokers.

AnyCable is a WebSocket server built for Ruby on Rails applications using Action Cable. It replaces the default Rails Action Cable server with a high-performance Go implementation while keeping the Rails channel code and APIs, enabling easier scaling and better concurrency.
Key Features:
- Drop-in replacement for Rails Action Cable server (keeps existing channel code)
- Go-based WebSocket server designed for high concurrency and lower memory usage
- RPC bridge between the WebSocket server and Rails application for channel callbacks
- Supports different broadcast adapters/brokers (commonly Redis; also supports other pub/sub backends via adapters)
- JWT-based authentication support and flexible connection identifiers (via Rails integration)
- Observability hooks/metrics and structured logging options (implementation-dependent)
Use Cases:
- Scaling Rails real-time features (chat, notifications, live updates) beyond a single Action Cable process
- Reducing memory/CPU footprint of WebSocket handling in production Rails deployments
- Running real-time WebSocket infrastructure as a separate service while keeping Rails channel logic
Limitations and Considerations:
- Requires deploying and operating an additional WebSocket server component alongside the Rails app
- Full feature parity depends on the chosen broker/adapter and configuration (e.g., advanced setups beyond Redis)
AnyCable is a pragmatic choice for teams invested in Rails Action Cable who need better performance and horizontal scalability without rewriting real-time application code. It separates WebSocket handling from Rails while preserving the familiar Action Cable programming model.