This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
Mitchell Hashimoto (author)
Fri Mar 06 15:23:10 -0800 2009
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Mar 04 10:19:36 -0800 2009 | |
| |
CHANGELOG | Thu Mar 05 10:34:23 -0800 2009 | |
| |
CREDITS | Wed Mar 04 10:19:36 -0800 2009 | |
| |
LICENSE | Wed Mar 04 10:19:36 -0800 2009 | |
| |
README.rdoc | Wed Mar 04 20:43:47 -0800 2009 | |
| |
Rakefile | Wed Mar 04 10:26:19 -0800 2009 | |
| |
lib/ | Fri Mar 06 15:23:10 -0800 2009 | |
| |
lightcloud.gemspec | Fri Mar 06 15:23:10 -0800 2009 | |
| |
spec/ | Thu Mar 05 10:31:35 -0800 2009 |
README.rdoc
LightCloud Library for Ruby
This is a library for accessing LightCloud systems through Ruby.
Background
LightCloud is a distributed key-value stored open-sourced by Plurk. The official website which includes benchmarks, design specs, and more can be viewed at the following URL:
opensource.plurk.com/LightCloud/
Usage
You can use it with class methods:
require 'rubygems'
require 'lightcloud'
LIGHT_CLOUD = {
'lookup1_A' => ['127.0.0.1:41401', '127.0.0.1:41402'],
'storage1_A' => ['192.168.0.2:51401', '192.168.0.2:51402']
}
lookup_nodes, storage_nodes = LightCloud.generate_nodes(LIGHT_CLOUD)
LightCloud.init(lookup_nodes, storage_nodes)
LightCloud.set("hello", "world")
print LightCloud.get("hello") # => world
LightCloud.delete("hello")
print LightCloud.get("hello") # => nil
Or you can also use it with instances:
require 'rubygems'
require 'lightcloud'
LIGHT_CLOUD = {
'lookup1_A' => ['127.0.0.1:41401', '127.0.0.1:41402'],
'storage1_A' => ['192.168.0.2:51401', '192.168.0.2:51402']
}
lookup_nodes, storage_nodes = LightCloud.generate_nodes(LIGHT_CLOUD)
cloud = LightCloud.new(lookup_nodes, storage_nodes)
cloud.set("hello", "world")
print cloud.get("hello") # => world
cloud.delete("hello")
print cloud.get("hello") # => nil
Installation
sudo gem install mitchellh-lightcloud
Known Issues / To-Do
The python library actually caches the get/set values in a thread-local hash table. This library doesn’t do this yet but I’m working on adding this in now.







