Minisketch binding for ruby Build Status Gem Version

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.