Skip to content
Ruby bindings for pmemkv
Ruby Shell
Branch: master
Clone or download
Latest commit 972057c Oct 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Move example from the pmemkv-tools Jul 18, 2019
lib/pmemkv Replace PMEMKV_STATUS_FAILED with PMEMKV_STATUS_UNKNOWN_ERROR Sep 18, 2019
spec Adjust to all API changes Jun 28, 2019
utils/docker
.gitignore gitignore hidden files Sep 13, 2019
.travis.yml Push image to DockerHub Sep 4, 2019
CONTRIBUTING.md Fix repo name in CONTRIBUTING.md Oct 21, 2019
ChangeLog add ChangeLog 0.9 Oct 4, 2019
Gemfile Add basic scaffolding Mar 23, 2017
Gemfile.lock Update pmemkv-ruby to version 0.9 Oct 4, 2019
LICENSE Update copyrights Feb 14, 2019
NOTICES.md Adding legal notices Mar 24, 2017
README.md Move example from the pmemkv-tools Jul 18, 2019
pmemkv.gemspec Update pmemkv-ruby to version 0.9 Oct 4, 2019

README.md

pmemkv-ruby

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.

Dependencies

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

Installation

Start by installing pmemkv on your system.

Install Bundler:

gem install bundler -v '< 2.0'

Clone the pmemkv-ruby tree:

git clone https://github.com/pmem/pmemkv-ruby.git
cd pmemkv-ruby

Download and install gems:

bundle install

Testing

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

LD_LIBRARY_PATH=path_to_your_libs bundle exec rspec

Example

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
You can’t perform that action at this time.