Illustration2Rails Application + ActionCable + AnyCableRuby Application + LiteCable + AnyCableClient ApplicationsWS Server


Action Cable on steroids!

Combines the good parts of Action Cable with the power of your favorite language for concurrent applications

You Had

Client applications communicating with Rails through Action Cable.

It's written in Ruby and doesn't act well in terms of resources usage and overall performance, especially under high load.
IllustrationRails Application + ActionCableClient ApplicationsWS Server

Now You Have

AnyCable plugged into the Rails application that allows you to use custom WebSocket server.

Try one of the existing AnyCable servers or write your own in any language you like.
Illustration2Rails Application + ActionCable + AnyCableClient ApplicationsWS Server

Reduced CPU usage

Running WebSocket Shootout benchmark


Reduced memory usage

Handling 20K idle connections

798 MB
832 MB
3,5 GB

Drastically increased broadcasting performance

Broadcast RTT depending on number of connections

Group 5 Created with Sketch. 1K 0 1 2 3 4 5 6 7 8 9 10 2K 3K 4K 5K 6K 7K 8K 9K 10K

Outside of Rails usage

AnyCable doesn't depend on Rails.
You can use it with other Ruby applications too.

Check out Sinatra example.

How To Use With Rails?

# Add AnyCable to your Gemfile

gem 'anycable-rails', group: :production

# Generate server script

rails generate anycable

# Run gRPC server


# Run WebSocket server (e.g. anycable-go)

anycable-go -addr=

Compatible with ActionCable
Choose one of the existing servers or build your own
Powered by gRPC
Want to contribute? Fork us on GitHub!
Have a question? Ask us on Gitter!