Minisketch binding for ruby
This is a wrapper around libminisketch for efficient set reconciliation.
Installation
Install libminisketch
Since this library is an FFI wrapper, libminisketch
must be installed beforehand.
If the library is installed in an unusual location,
the environment variable [LIBMINISKETCH
] can be used to specify the path to the library.
Install gem
Add this line to your application's Gemfile:
gem 'minisketch'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install minisketch
Usage
Functions exposed in libminisketch.h
can be accessed using the Minisketch
class.
require 'minisketch'
# Create new sketch
sketch = Minisketch.create(12, 0, 4)
# Add element to sketch
sketch.add(3000)
# or
sketch << 3001
# Serialize
sketch.serialize
# Decode
decoded = sketch.decode
another_sketch = Minisketch.create(12, 0, 4)
another_sketch << 3000
another_sketch << 3002
# Merge another sketch
sketch.merge(another_sketch)
This library has been tested based on commit a571ba2 of libminisketch.