Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Build ZeroMQ and EventMachine apps quickly by using a simple API
branch: master

This branch is 55 commits ahead, 290 commits behind andrewvc:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc_img
example
lib
.document
.gitignore
LICENSE
README.md
Rakefile
VERSION
dripdrop.gemspec

README.md

DripDrop

Note: For now, for PUSH/PULL support you'll need to build zmqmachine from my fork of zmqmachine, the official gem does not yet have this

DripDrop is ZeroMQ(using zmqmachine) + Event Machine simplified for the general use case + serialization helpers.

Here's an example of the kind of thing DripDrop makes easy, from examples/pubsub.rb

DripDrop::Node.new do |node|
  z_addr = 'tcp://127.0.0.1:2200'

  pub = node.zmq_publish(z_addr,:bind)
  sub = node.zmq_subscribe(z_addr,:connect).on_recv do |message|
    puts "Receiver 1 #{message.inspect}"
  end
  sub = node.zmq_subscribe(z_addr, :connect).on_recv do |message|
    puts "Receiver 2 #{message.inspect}"
  end

  node.zm_reactor.periodical_timer(5) do
    pub.send_message(DripDrop::Message.new('test', :body => 'Test Payload'))
  end
end

Want to see a longer example encapsulating both zmqmachine and eventmachine functionality? Check out this file, which encapsulates all the functionality of the diagram below:

topology

How It Works

DripDrop encapsulates both zmqmachine, and eventmachine. It provides some sane default messaging choices, using BERT (A binary, JSON, like serialization format) and JSON for serialization. While zmqmachine and eventmachine APIs, some convoluted ones, the goal here is to smooth over the bumps, and make them play together nicely.

Copyright (c) 2010 Andrew Cholakian. See LICENSE for details.

Something went wrong with that request. Please try again.