Phoenix Pubsub for Ruby
PhoenixPubsub allows you to publish messages to Phoenix Channels from Ruby. Subscriptions are not implemented (yet).
Why?
This might be very interesting for people wanting to enrich their Rails app with Realtime capabilities and to leverage the incredible websocket performance of the Erlang VM. The awaited Rails 5 release with ActionCable will most likely not feature such an ease of scalability as Elixir/Erlang does.
Also this can help people to transition from Rails to Phoenix.
Installation
Add this line to your application's Gemfile:
gem 'phoenix_pubsub'
And then execute:
$ bundle
Or install it yourself as:
$ gem install phoenix_pubsub
Usage
E.g.: using with sample chat app:
p = Phoenix::Pubsub::Redis.new(redis_url: 'redis://localhost:6379', phoenix_class: 'Chat.PubSub')
p.publish 'rooms:lobby', 'new:msg', { user: 'rake', body: 'hello from ruby!' }
Requirements
- Redis
- Phoenix app with Redis PubSub adapter
Sample Chat App
- Clone Phoenix Sample Chat app
- Install and configure the Redis PubSub adapter
- Make sure the demo app is running
- Clone this repo, install all dependencies and run
bundle exec rake
- You should see a message coming from Ruby
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
to create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
- Fork it ( https://github.com/[my-github-username]/phoenix_pubsub_redis/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request