rubyhaze

RubyHaze is a little gem that wraps the Java Hazelcast library into a more comfortable Ruby package (in JRuby, of course).

Hazelcast is an open source clustering and highly scalable data distribution platform for Java, which is:

  • Lightning-fast; thousands of operations/sec.

  • Fail-safe; no losing data after crashes.

  • Dynamically scales as new servers added.

  • Super-easy to use; include a single jar.

Getting started

Let’s get the gem installed and test out the interactive console.

shell> rvm jruby
shell> gem install rubyhaze
shell> rubyhaze_console

hash = RH::Hash[:test]
hash[:a] = 1
hash[:b] = 2

Let’s open another console to check how this distributed hash works:

shell> rubyhaze_console

hash = RH::Hash[:test]
hash[:a]

>> 1

Distributed Objects

Check out the github.com/aemadrid/rubyhaze-persisted gem to get your own distributed ruby objects:

shell> rvm jruby
shell> gem install rubyhaze-persisted
shell> rubyhaze_console

require 'rubyhaze-persisted'

class Foo
  include RubyHaze::Persisted
  attribute :name, :string
  attribute :age, :int
end

a = Foo.create :name => "Raffaello", :age => 32
b = Foo.create :name => "Leonardo", :age => 45
c = Foo.create :name => "Michelangelo", :age => 65

found = Foo.find "age < 60 AND name LIKE '%lo'"
found.first.name

>> "Raffaello"

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010 Adrian Madrid. See LICENSE for details.