Skip to content

AnyCable for Ruby on Rails applications

License

Notifications You must be signed in to change notification settings

polleverywhere/anycable-rails

 
 

Repository files navigation

Gem Version Build Documentation

AnyCable Rails

AnyCable allows you to use any WebSocket server (written in any language) as a replacement for built-in Rails Action Cable server.

With AnyCable you can use channels, client-side JS, broadcasting - (almost) all that you can do with Action Cable.

You can even use Action Cable in development and not be afraid of compatibility issues.

💾 Example Application

📑 Documentation.

AnyCable Pro has been launched 🚀

Sponsored by Evil Martians

Requirements

  • Ruby >= 2.6
  • Rails >= 6.0 (Rails 5.1 could work but we're no longer enforce compatibility on CI)
  • Redis (see other options for broadcasting)

Usage

Add anycable-rails gem to your Gemfile:

gem "anycable-rails"

# when using Redis broadcast adapter
gem "redis", ">= 4.0"

Interactive set up

After the gem was installed, you can run an interactive wizard to configure your Rails application for using with AnyCable by running a generator:

bundle exec rails g anycable:setup

Manual set up

Specify AnyCable subscription adapter for Action Cable:

# config/cable.yml
development:
  adapter: any_cable # or anycable

production:
  adapter: any_cable

and specify AnyCable WebSocket server URL:

# For development it's likely the localhost

# config/environments/development.rb
config.action_cable.url = "ws://localhost:8080/cable"

# For production it's likely to have a sub-domain and secure connection

# config/environments/production.rb
config.action_cable.url = "wss://ws.example.com/cable"

Then, run AnyCable RPC server:

$ bundle exec anycable

# don't forget to provide Rails env

$ RAILS_ENV=production bundle exec anycable

And, finally, run AnyCable WebSocket server, e.g. anycable-go:

anycable-go --host=localhost --port=8080

See documentation for more information on AnyCable + Rails usage.

Action Cable Compatibility

See documentation.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/anycable/anycable-rails.

License

The gem is available as open source under the terms of the MIT License.

Security Contact

To report a security vulnerability, please contact us at [email protected]. We will coordinate the fix and disclosure.

About

AnyCable for Ruby on Rails applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 99.3%
  • Other 0.7%