Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Ruby wrapper for the ZooKeeper C client library

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 ext
Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGELOG
Octocat-spinner-32 LICENSE
Octocat-spinner-32 Manifest
Octocat-spinner-32 README
Octocat-spinner-32 Rakefile
README
zookeeper

An interface to the Zookeeper distributed configuration server.

== License

Copyright 2008 Phillip Pearson, and 2010 Twitter, Inc. Licensed under the
MIT License.  See the included LICENSE file.  Portions copyright 2008-2010
the Apache Software Foundation, licensed under the Apache 2 license, and
used with permission.

== Install

sudo gem install zookeeper

== Usage

Connect to a server:

  require 'rubygems'
  require 'zookeeper'
  z = Zookeeper.new("localhost:2181")

Create, set and read nodes:

  z.create("/bacon", "text to be stored in the new node", 0)
  data, stat = z.get("/bacon")
    # => ["text to be stored in the new node"...]
  
  z.set("/bacon", "an entirely different line of text", stat.version)
  z.set("/bacon", "this won't work", stat.version)
    # CZookeeper::BadVersionError: expected version does not match actual version

  data, stat = z.get("/bacon")
    # => ["an entirely different line of text"...]
  z.delete("/bacon", stat.version)

Create ephemeral and sequence nodes:

  z.create("/parent", "parent node", 0)

  z.create("/parent/test-", 
    "an ordered ephemeral node", 
    Zookeeper::EPHEMERAL | Zookeeper::SEQUENCE)
    # => "/parent/test-0"

  z.create("/parent/test-", 
    "an ordered ephemeral node", 
    Zookeeper::EPHEMERAL | Zookeeper::SEQUENCE)
    # => "/parent/test-1"

  z.get_children(:path => "/")

== Idioms

  The following methods are initially supported:
    get
    set
    get_children
    stat
    create
    delete
    get_acl
    set_acl

  All support async callbacks.  get, get_children and stat support both
  watchers and callbacks.

  Calls take a dictionary of parameters.  With the exception of set_acl, the
  only required parameter is :path.  Each call returns a dictionary with at
  minimum two keys :req_id and :rc.

Something went wrong with that request. Please try again.