/leveldb-ruby

Ruby bindings for LevelDB

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

LevelDB is a very fast, persistent, in-process key-value store.
Read more about it here: http://code.google.com/p/leveldb/.

This gem contains Ruby bindings so that you can use it from your
Ruby process.

INSTALLATION

  gem install leveldb-ruby

SYNOPSIS

  require 'rubygems' # on for ruby 1.8
  require 'leveldb'

  ## make a new database
  db = LevelDB::DB.new "/tmp/asdf"

  ## getting and setting
  db.put "it", "works"               # => "works"
  db.get "it"                        # => "works"

  db["hello"] = "there"              # => "there"
  db["hello"]                        # => "there"

  db["nonexistent"]                  # => nil

  ## testing
  db.includes? "hello"               # => true
  db.contains? "hello"               # => true

  ## keys and values
  db.keys                            # => "it", "hello"
  db.values                          # => "there", "works"

  ## iterating
  db.each { |k, v| ... }
  db.map { |k, v| ... }
  db.each                            # => LevelDB::Iterator

  ## ranges
  db.each(:from => "a", :to => "b")  # => LevelDB::Iterator
  db.each(:from => "a", :to => "b").
    map { |k, v| ... }
  # etc...

  ## deleting
  db.delete "hello"       # => "there"
  db.delete "hello"       # => nil

LICENSE

  Leveldb-ruby is available for your use under the terms of
  the New BSD License. See the LICENSE file for details.

CREDIT

  This gem brought to you by William Morgan <http://masanjin.net/>
  and the following honorable contributors:
  - Rick Olson
  - byplayer
  - Yukio Goto
  - Johannes Holzfuß
  - Steve Wilhelm
  - Gabriel Ebner
  and by users like you.

BUGS

  Please report bugs to https://github.com/wmorgan/leveldb-ruby/issues.