Ruby bindings for pmemkv

The current API is simplified and not functionally equal to its native C/C++ counterpart. In the future existing API may be extended in idiomatic way without preserving backward compatibility. All known issues and limitations are logged as GitHub issues.


  • Ruby 2.2 or higher
  • PMDK - native persistent memory libraries
  • pmemkv - native key/value library
  • ffi - for native library integration
  • Used only for testing:


Start by installing pmemkv on your system.

Install Bundler:

gem install bundler -v '< 2.0'

Clone the pmemkv-ruby tree:

git clone
cd pmemkv-ruby

Download and install gems:

bundle install


This library includes a set of automated tests that exercise all functionality.

LD_LIBRARY_PATH=path_to_your_libs bundle exec rspec


We are using /dev/shm to emulate persistent memory in example.

Example can be found within this repository in examples directory. To execute the example:

PMEM_IS_PMEM_FORCE=1 ruby basic_example.rb

The contents of this web site and the associated GitHub repositories are BSD-licensed open source.