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.
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
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.