#nvml #pmdk #pmem #libpmem #persistent-memory #track

nightly sys nvml-sys

A low-level FFI wrapper around the Persistent Memory Development Kit, PMDK (formerly NVML) and its libraries, including libpmem, libpmemobj and others. Currently tracks master after version 1.3.1.

6 releases

Uses old Rust 2015

0.0.6 Jan 5, 2018
0.0.5 Jan 4, 2018
0.0.2 May 9, 2017
0.0.1 Apr 24, 2017

#5 in #nvml

24 downloads per month
Used in nvml

MIT license

172K SLoC

C 107K SLoC // 0.2% comments Visual Studio Project 23K SLoC C++ 18K SLoC // 0.2% comments PowerShell 15K SLoC // 0.6% comments Shell 4.5K SLoC // 0.4% comments Visual Studio Solution 2.5K SLoC Forge Config 1.5K SLoC // 0.3% comments Bitbake 1K SLoC // 0.3% comments Rust 42 SLoC // 0.2% comments GDB Script 16 SLoC XSL 7 SLoC Automake 6 SLoC

Contains (obscure autoconf code, 50KB) lib/pmdk/src/jemalloc/configure.ac, (obscure autoconf code, 1KB) lib/musl-fts/configure.ac


nvml-sys is a rust crate that provides a low-level FFI wrapper around the Persistent Memory Devleopment Kit, PMDK (formerly NVML) and its libraries, including libpmem and libpmemobj amongst others.

This library currently tracks the next development version after 1.3.1.

Bindings are created for the following libraries:-

  • libpmem
  • libpmemblk
  • libpmemcto (experimental)
  • libpmemlog
  • libpmemobj (although it is not possible to support transactions as they using setjmp).
  • librpmem, but it is not statically linked as this pulls in the monstrosity which is libfabric. This library, as of May 2017, is not production ready;
  • libpmempool

Bindings are not created for:-

  • libvmem
  • libvmmalloc, an alternative malloc using persistent memory, which is deprecated (and almost impossible to use from Rust in any event). PMDK recommend the use of the memkind library instead.


The license for this project is MIT.