Giter VIP home page Giter VIP logo

pmemkv-java's Introduction

Travis build status GHA build status PMEMKV-JAVA version

pmemkv-java

Java bindings for pmemkv, using Java Native Interface. Currently functionally equal to pmemkv in version 1.0. Some of the new functionalities (from pmemkv 1.1+) are not available yet.

All known issues and limitations are logged as GitHub issues or are described in pmemkv's man pages.

Dependencies

  • pmemkv - native key/value library
  • Java 8 or higher
  • Apache Maven - build system
  • Used only for development & testing:

Installation

Start by installing pmemkv (currently at least in version 1.0.2) in your system.

It may be necessary to configure a proxy and set JAVA_HOME & JAVA_TOOL_OPTIONS environment variables:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

Clone the pmemkv-java tree:

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

Build and install Java Native Interface (JNI) and java bindings:

mvn install

If dependencies (pmemkv, libpmemobj-cpp, pmdk, etc.) are installed in non-standard location it may be also necessary to set it in LD_LIBRARY_PATH, e.g.:

LD_LIBRARY_PATH=path_to_your_libs mvn install

Testing

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

LD_LIBRARY_PATH=path_to_your_libs mvn test

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:

cd examples
javac -cp ../src/main/target/*.jar BasicExample.java
PMEM_IS_PMEM_FORCE=1 java -ea -Xms1G -cp .:`find ../src/main/target -name *.jar` -Djava.library.path=/usr/local/lib BasicExample

Documentation

After installation, docs can be generated using ... by executing commands:

...

pmemkv-java's People

Contributors

annamarcink avatar igchor avatar kfilipek avatar kilobyte avatar krzycz avatar ldorau avatar lukaszstolarczuk avatar marcinslusarz avatar robdickinson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.