{"id":37026171,"url":"https://github.com/pmem/pmemkv-java","last_synced_at":"2026-01-14T03:02:20.430Z","repository":{"id":44944827,"uuid":"85969452","full_name":"pmem/pmemkv-java","owner":"pmem","description":"Java bindings for pmemkv","archived":true,"fork":false,"pushed_at":"2023-03-23T12:25:17.000Z","size":1103,"stargazers_count":28,"open_issues_count":18,"forks_count":22,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-02-05T00:54:23.145Z","etag":null,"topics":["pmdk","pmem","pmemkv"],"latest_commit_sha":null,"homepage":"https://pmem.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmem.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-23T16:00:58.000Z","updated_at":"2023-03-23T12:25:58.000Z","dependencies_parsed_at":"2022-07-13T11:10:31.665Z","dependency_job_id":null,"html_url":"https://github.com/pmem/pmemkv-java","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/pmem/pmemkv-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmemkv-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmemkv-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmemkv-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmemkv-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmem","download_url":"https://codeload.github.com/pmem/pmemkv-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmem%2Fpmemkv-java/sbom","scorecard":{"id":738756,"data":{"date":"2025-08-11","repo":{"name":"github.com/pmem/pmemkv-java","commit":"df0ffb63c4244506c452ae88fd716de33ff40a81"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Code-Review","score":6,"reason":"Found 8/12 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/gha.yml:1","Warn: no topLevel permission defined: .github/workflows/maven.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/pmem/.github/SECURITY.md:1","Info: Found linked content: github.com/pmem/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/pmem/.github/SECURITY.md:1","Info: Found text in security policy: github.com/pmem/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gha.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/pmem/pmemkv-java/gha.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gha.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/pmem/pmemkv-java/gha.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/pmem/pmemkv-java/maven.yml/master?enable=pin","Warn: containerImage not pinned by hash: utils/docker/images/Dockerfile.fedora-33:10: pin your Docker image by updating registry.fedoraproject.org/fedora:33 to registry.fedoraproject.org/fedora:33@sha256:9b7180776127b37ccda44241e911f6eee670fb6b255330a921f64a16865e2654","Warn: containerImage not pinned by hash: utils/docker/images/Dockerfile.fedora-34:10: pin your Docker image by updating registry.fedoraproject.org/fedora:34 to registry.fedoraproject.org/fedora:34@sha256:c7398ad5453edb06975b9b2f8e1b52c4f93c437155f3356e4ecf6140b6c69921","Warn: containerImage not pinned by hash: utils/docker/images/Dockerfile.ubuntu-20.04:10: pin your Docker image by updating registry.hub.docker.com/library/ubuntu:20.04 to registry.hub.docker.com/library/ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Warn: containerImage not pinned by hash: utils/docker/images/Dockerfile.ubuntu-21.04_clean:11: pin your Docker image by updating registry.hub.docker.com/library/ubuntu:21.04 to registry.hub.docker.com/library/ubuntu:21.04@sha256:ba394fabd516b39ccf8597ec656a9ddd7d0a2688ed8cb373ca7ac9b6fe67848f","Warn: downloadThenRun not pinned by hash: utils/docker/build.sh:74","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 containerImage dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T16:43:09.157Z","repository_id":44944827,"created_at":"2025-08-22T16:43:09.163Z","updated_at":"2025-08-22T16:43:09.163Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408800,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pmdk","pmem","pmemkv"],"created_at":"2026-01-14T03:02:19.727Z","updated_at":"2026-01-14T03:02:20.417Z","avatar_url":"https://github.com/pmem.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pmemkv-java\n[![GHA build status](https://github.com/pmem/pmemkv-java/workflows/pmemkv-java/badge.svg?branch=master)](https://github.com/pmem/pmemkv-java/actions)\n[![PMEMKV-JAVA version](https://img.shields.io/github/tag/pmem/pmemkv-java.svg)](https://github.com/pmem/pmemkv-java/releases/latest)\n[![pmemkv-root maven central](https://maven-badges.herokuapp.com/maven-central/io.pmem/pmemkv-root/badge.svg?style=flat-for-the-badge)](https://search.maven.org/artifact/io.pmem/pmemkv-root)\n\n## ⚠️ Discontinuation of the project\nThe **pmemkv-java** project will no longer be maintained by Intel.\n- Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases,\nor updates, to this project.\n- Intel no longer accepts patches to this project.\n- If you have an ongoing need to use this project, are interested in independently developing it, or would like to\nmaintain patches for the open source software community, please create your own fork of this project.\n- You will find more information [here](https://pmem.io/blog/2022/11/update-on-pmdk-and-our-long-term-support-strategy/).\n\n## Introduction\n\nJava bindings for pmemkv, using Java Native Interface. It's mostly functionally equal to pmemkv\nin version 1.0, but some of the new functionalities (e.g. from pmemkv 1.4) are already available.\n\nAll known issues and limitations are logged as GitHub issues or are described\nin pmemkv's man pages.\n\nJava API is documented with javadocs and can be found as html on https://pmem.io/pmemkv-java\nfor every branch/release. For most recent always see [master](https://pmem.io/pmemkv-java/master/html/index.html) docs.\n\nLatest releases can be found on the [\"releases\" tab](https://github.com/pmem/pmemkv-java/releases).\nUp-to-date support/maintenance status of branches/releases is available on [pmem.io](https://pmem.io/pmemkv-java).\n\n## Dependencies\n\n* [pmemkv 1.4](https://github.com/pmem/pmemkv) - Key-Value Datastore for Persistent Memory\n  * pmemkv source package (pmemkv-devel or libpmemkv-dev)\n* Java Development Kit 8\n* gcc-c++ compiler\n* [Apache Maven 3](https://maven.apache.org) - build system\n\n## Usage\n\n### Maven repository\n\nThis pmemkv binding is accessible from maven repository:\n\n[io.pmem namespace @ maven.org](https://repo1.maven.org/maven2/io/pmem/pmemkv-root)\n\nYou can add our project as a dependency and use it freely. Make sure to use it e.g. like this:\n\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.pmem\u003c/groupId\u003e\n  \u003cartifactId\u003epmemkv-root\u003c/artifactId\u003e\n  \u003cversion\u003e[1.2.0,)\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Installation\n\nStart by installing [pmemkv](https://github.com/pmem/pmemkv/blob/master/INSTALLING.md)\n(currently at least in version **1.4**) in your system. Make sure our helper library `pmemkv_json_config`\nis enabled by specifying extra cmake parameter - `cmake .. -DBUILD_JSON_CONFIG=ON ...`.\n\nIt may be necessary to [configure a proxy](https://maven.apache.org/guides/mini/guide-proxies.html)\nand set `JAVA_HOME` environment variable. Set `JAVA_HOME` variable with directory containing\nJDK 8 installed typically in `/usr/lib/jvm/`, command below will set first directory matching to\n1.8.0, but path can differ in some exotic distros:\n\n```sh\nexport JAVA_HOME=`ls -d1 /usr/lib/jvm/* | grep \"1.8.0\" | head -n 1`\necho $JAVA_HOME\n```\n\nClone the pmemkv-java tree:\n\n```sh\ngit clone https://github.com/pmem/pmemkv-java.git\ncd pmemkv-java\n```\n\nBuild and install Java Native Interface (JNI) and java bindings:\n\n```sh\nmvn install\n```\n\nIf dependencies (pmemkv, libpmemobj-cpp, pmdk, etc.) are installed in non-standard\nlocation(s) it may be also necessary to set up:\n**CPLUS_INCLUDE_PATH** and **LIBRARY_PATH** for compiling and linking JNI code (gcc env. variables),\n**LD_LIBRARY_PATH** for examples and tests build/execution.\n\n```sh\nCPLUS_INCLUDE_PATH=\u003cpath_to_includes\u003e \\\nLIBRARY_PATH=\u003cpath_to_libs\u003e \\\nLD_LIBRARY_PATH=\u003cpath_to_libs\u003e mvn install\n```\n\n## Testing\n\nThis library includes a set of automated tests that exercise all functionality.\n\n```sh\nLD_LIBRARY_PATH=\u003cpath_to_libs\u003e mvn test\n```\n\nto execute tests on non-default path (`/dev/shm`), setup desired directory, e.g.:\n\n```sh\nLD_LIBRARY_PATH=\u003cpath_to_libs\u003e mvn test -Dtest.db.dir=/my/test/dir\n```\n\n## Examples\n\nWe use `/dev/shm` with [emulated persistent memory](https://pmem.io/2016/02/22/pm-emulation.html)\nin examples.\n\nExamples can be found within this repository in [examples directory](https://github.com/pmem/pmemkv-java/tree/master/examples).\nTo execute them, run e.g.:\n\n```sh\ncd examples\nmvn package\nPMEM_IS_PMEM_FORCE=1 java -ea -Xms1G -jar StringExample/target/StringExample-*-jar-with-dependencies.jar\n```\n\nIf you want to use our examples with pmemkv from maven repository, you can take a look at our\n[testing script](./utils/docker/run-maven-example.sh) executed in our [dedicated CI workflow](./.github/workflows/maven.yml).\nIt boils down to changing build command (`mvn package`) to e.g.:\n\n```sh\nmvn package -Dpmemkv.packageName=pmemkv-root -Dpmemkv.packageVersion=1.2.0\n```\n\n## Contributing\n\nAny contributions are welcome. Process, hints and good practices\nare described in [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n### Debugging\n\nDebugging process is described in [DEBUGGING.md](./DEBUGGING.md).\n\n### Documentation\n\nDocs can be generated using mvn by executing commands:\n\n```sh\nmvn javadoc:javadoc\n```\n\n## Contact us\n\nIf you read the [blog post](https://pmem.io/blog/2022/11/update-on-pmdk-and-our-long-term-support-strategy/) and still have some questions (especially about discontinuation of the project), please contact us using the dedicated e-mail: pmdk_support@intel.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmem%2Fpmemkv-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmem%2Fpmemkv-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmem%2Fpmemkv-java/lists"}