FreeBSD's name/value pairs library
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

FreeBSD's name/value pairs library

Build Status

The libnv library is a general purpose name/value pairs mechanism used in FreeBSD, which was inspired by the nvpairs used in Solaris/illumos. It is a lightweight serialization (marshalling) library. The implementation is written in C99 and distributed under the 2-clause BSD license.

The libnv library was implemented by Pawel Jakub Dawidek under sponsorship from the FreeBSD Foundation and Mariusz Zaborski.


Documentation and API

See the FreeBSD's nv(9) manual page.

Introduction to nvlist part 1 on oshogbo blog.

Introduction to nvlist part 2 - dnvlist on oshogbo blog.

Introduction to nvlist part 3 - simple traversing on oshogbo blog.

Introduction to nvlist part 4 - cnvlist on oshogbo blog.


Just build the package, install it and link the library using the -lnv flag.

  • RPM (tested on RHEL/CentOS 7): cd pkg && make rpm
  • DEB (tested on Debian 9/Ubuntu): cd pkg && make deb