Skip to content

spkrka/gnista

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gnista

Gnista is a wrapper for the database/hashstore Sparkey written for Ruby. Gnista packs all the native features of Sparkey into a shiny red package, easy to use.

Setup

You will need Sparkey, obviously. It's really easy to install. Head over to http://github.com/spotify/sparkey and install it, I'll wait..

Now, add this line to your application's Gemfile:

gem 'gnista'

And then execute:

$ bundle

Or install it yourself as:

$ gem install gnista

Usage

You can read about Sparkey here.

require 'gnista'

logwriter = Gnista::Logwriter.new "mylog.log" # no compression
logwriter = Gnista::Logwriter.new "mylog.log", 4000 # 4k compression block size
logwriter = Gnista::Logwriter.new "mylog.log", :append # append to existing log

logwriter.put "key", "value" # put entry
logwriter.del "key" # delete entry

logwriter.flush

logreader = Gnista::Logreader.new "mylog.log"
logreader.each {|key,value| puts key, value }

Gnista::Hash.write "mylog.hash", "mylog.log" # no preferred hash size
Gnista::Hash.write "mylog.hash", "mylog.log", 4 # 32 bit murmurhash3_x86_32
Gnista::Hash.write "mylog.hash", "mylog.log", 8 # lower 64-bit part of murmurhash3_x64_128

hash = Gnista::Hash.new "mylog.hash", "mylog.log"
hash.each {|key,value| puts key, value }
hash.get "key" # => "value" or nil

hash.maxkeylen # largest key length
hash.maxkeylen # largest value length
hash.length
hash.collisions

# Don't forget to close!
logwriter.close
logreader.close
hash.close

Contributing

Use the following commands to build the native extensions and test:

$ rake make
$ rake test

Then:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Ruby wrapper for Spotify's Sparkey

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 71.1%
  • Ruby 28.9%