This is a wrapper around libminisketch for efficient set reconciliation.
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.
Add this line to your application's Gemfile:
gem 'minisketch'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install minisketch
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.