Send and receive messages with the STOMP protocol with Rubinius or JRuby. Use actors for true parallelism.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.




Noise takes advantage of Rubinius' actor paradigm (supports JRuby too!) to enable breakneck STOMP performance in your Ruby application. The codebase is simple, and easy to read, and I hope to keep it that way.

Twitter (@mikekeen) is the best and fastest way to get in touch with me.

What do I need to use Noise?

You need either Rubinius or JRuby to run Noise. This is due to heavy useage of Rubinius actors. If you use JRuby you'll need to gem install "rubinius-actor" before this will work.

What can I do with Noise?

You can create scalable realtime Web services that send and receive STOMP commands. You can build protocols on top of it in order to power your stuff. I'll add more straightforward ways to create protocols and services soon. For now, you can do it manually.

What doesn't Noise have right now that it will soon?

Test coverage, error reporting, a connection per subscription by default.

How do I use Noise?


gem build noise.gemspec
gem install Noise-0.0.1.gem

Creating a new connection and doing some stuff with it:

require "rubygems"
require "noise" :host => "localhost", :port => 61613, :user => "guest", :pass => "guest" do
  # At this point, you are connected to the server and the login you specified has been verified.
  subscribe "/topic/noise"

  on_message do |frame|
    puts frame.to_hash[:body]
    send rand(10000).to_s, "/topic/noise"

  on "message", false do |frame|
    puts "received a message. this event callback will only fire once"

  send "this is a test of the emergency broadcasting system", "/topic/noise"

# You will need to keep the process alive somehow in order to listen for incoming messages.
# You can do better than this:

sleep 500

Is this in active development?

I am developing this in my spare time but I will respond promptly to bug reports and pull requests.