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
Copyright © 2010 Adrian Madrid. See LICENSE for details.