NBD client library in userspace // PLEASE DO NOT USE GITHUB FOR ISSUES OR PULL REQUESTS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
NBD — Network Block Device — is a protocol for accessing Block Devices (hard disks and disk-like things) over a Network. This is the NBD client library in userspace, a simple library for writing NBD clients. The key features are: * Synchronous and asynchronous APIs, both for ease of use and for writing non-blocking, multithreaded clients. * High performance. * Minimal dependencies for the basic library. * Well-documented, stable API. * Bindings in several programming languages. For documentation, see the ‘docs/’ and ‘examples/’ subdirectories. LICENSE ======= The software is copyright © Red Hat Inc. and licensed under the GNU Lesser General Public License version 2 or above (LGPLv2+). See ‘LICENSE’ for details. BUILDING FROM SOURCE ==================== To build from git: autoreconf -i ./configure make make check To build from tarball: ./configure make make check To run the tests under valgrind: make check-valgrind Requirements: * Only a C compiler, make, shell are required. Optional: * OCaml is required to run the generator, which is needed for building from git. However it is not needed if building from tarballs, so this is classified as an optional dependency. * GnuTLS is recommended for TLS support. If not available then TLS support will be disabled in the library. * libxml2 is recommended for NBD URI support. If not available then a few APIs related to URIs will always return error. * The nbdkit command, nbdkit-sh-plugin and nbdkit development headers are recommended as they are needed to run the test suite. * nbd-server and qemu-nbd if you want to do interoperability testing against these servers. * qemu, qemu-io, qemu-img for interoperability testing. * glib2 for examples that interoperate with the glib main loop. * OCaml and ocamlfind are both needed to generate the OCaml bindings. * Perl Pod::Man and Pod::Simple to generate the documentation. * Python >= 3.3 to build the Python 3 bindings and NBD shell (nbdsh). * psktool and certtool (part of GnuTLS) for testing TLS support. * valgrind if you want to run the tests under valgrind. DOWNLOAD TARBALLS ================= Tarballs are available from: http://libguestfs.org/download/libnbd DEVELOPERS ========== Install the valgrind program and development headers. Use: ./configure --enable-gcc-warnings When testing use: make check make check-valgrind For development ideas, see the TODO file. The upstream git repository is: https://github.com/libguestfs/libnbd Please send patches to the libguestfs mailing list: https://www.redhat.com/mailman/listinfo/libguestfs For further information, see: http://libguestfs.org/ https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md https://github.com/libguestfs/nbdkit