Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
NBD server toolkit with stable ABI and permissive license. PLEASE DO NOT USE GITHUB FOR ISSUES OR PULL REQUESTS. See the website for how to file a bug or contact us.
branch: master

ocaml: New plugin lets you write plugins as natively compiled OCaml p…


This requires your OCaml compiler to support native compilation and be
compiled with -fPIC (ie. it won't work with most distro builds of
OCaml).  I have filed a bug upstream to add support for building
shared libraries from OCaml:
latest commit e3abac4e55
rwmjones rwmjones authored


NBD is a protocol for accessing Block Devices (hard disks and
disk-like things) over a Network.

'nbdkit' is a toolkit for creating NBD servers.

The key features are:

* Multithreaded NBD server written in C with good performance.

* Well-documented, simple plugin API with a stable ABI guarantee.
  Let's you export "unconventional" block devices easily.

* Liberal license (BSD) allows nbdkit to be linked to proprietary
  libraries or included in proprietary code.

For documentation, see the docs/ directory.

For plugins and examples, see the plugins/ directory.


This software is copyright (C) Red Hat Inc. and licensed under a BSD
license.  See LICENSE for details.

Building from source

By default nbdkit needs nothing except Linux and reasonably recent gcc.

To build the man pages, you will need to install:

 - pod2man (included with perl)

There are some *optional* libraries you may want to install for the

For the gzip plugin:

 - zlib

For the xz plugin:

 - liblzma

For the curl (HTTP/FTP) plugin:

 - libcurl

For the libvirt plugin:

 - libvirt

For the libguestfs plugin, and to run the test suite:

 - libguestfs

 - guestfish (from libguestfs)

For the VDDK plugin:

 - VDDK (see plugins/vddk/README.VDDK)

For the Perl plugin:

 - perl development libraries

 - perl module ExtUtils::Embed

For the Python plugin:

 - python development libraries

For the OCaml plugin:

 - OCaml native compiler that was compiled using -fPIC, see:
   Hopefully this will become the default in a future OCaml, see:

After installing any dependencies:

  To build from tarball:         To build from git:
  ----------------------         ------------------
                                 autoreconf -i
  ./configure                    ./configure
  make                           make
  make check                     make check

Optionally run this as root to install everything:

  make install


You will need to install libguestfs to run the test suite.

The test suite ('make check') is fairly comprehensive.  It runs the
newly built nbdkit + plugin as a captive process, and tests it using

If there is a failure, look at the corresponding tests/*.log file for
debug information.

Packager information

Tarballs are available from:

Developer information

For development ideas, see the TODO file.

The upstream git repository is:

Please send patches to the libguestfs mailing list:

For further information, see:
Something went wrong with that request. Please try again.