Richard W.M. Jones
2019-Apr-10 13:05 UTC
[Libguestfs] ANNOUNCE: nbdkit 1.12 - an NBD server toolkit with stable plugin API and permissive license
I’m pleased to announce the next stable release of nbdkit. This release concentrates on numerous feature enhancements - see the release notes below. NBD — Network Block Device — 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. * Minimal dependencies for the basic server. * Liberal license (BSD) allows nbdkit to be linked to proprietary libraries or included in proprietary code. * Well-documented, simple plugin API with a stable ABI guarantee. Lets you export “unconventional” block devices easily. * You can write plugins in C, Lua, Perl, Python, OCaml, Ruby, [new!] Rust, shell script or Tcl. * Filters can be stacked in front of plugins to transform the output. Clone source: https://github.com/libguestfs/nbdkit Download tarball: http://download.libguestfs.org/nbdkit/1.12-stable/ Other downloads: http://download.libguestfs.org/nbdkit/ Fedora packages: https://koji.fedoraproject.org/koji/packageinfo?packageID=16469 Release notes: New ‘ssh’ plugin which lets you turn any disk image on a remote Unix server accessible by ssh into an NBD source. New ‘rate’ filter for bandwidth-limiting connections. Either single connections or the whole server can be bandwidth-limited, and the limit can be dynamically changed at runtime. New ‘readahead’ filter improves performance when reading sequentially from plugins with a high request overhead like curl. New ‘linuxdisk’ plugin lets you create complete ext2, ext3 or ext4 filesystems in a GPT partitioned disk image, from a local directory. This can be attached to existing Linux VMs or used to create new ones from scratch. New ‘noextents’ filter can make sparse disks appear fully allocated. Plugins can now be written in the Rust programming language. The old ‘xz’ plugin has been removed. Use ‘nbdkit --filter=xz file file.xz’ as a replacement. This filter can be placed on top of other plugins such as curl (for decompressing a remote web URL). NBD_CMD_BLOCK_STATUS has been implemented allowing clients to query which parts of the disk are allocated, holes or zeroes. Plugins and filters have been extended to supply this information in many cases. This required adding minimal support for NBD protocol Structured Replies, NBD_CMD_FLAG_REQ_ONE and NBD_CMD_FLAG_DF. (Thanks to Eric Blake for extensive help with this one.) The ‘vddk’ plugin has been updated to VDDK 6.7, but now also works back as far as VDDK 5.1.1. It supports extents, flush and FUA. Also added: new flags single-link and unbuffered. (Thanks to Martin Kletzander). The line "All rights reserved." was removed from the license, with the agreement of all nbdkit contributors. Note this does not change the license. ‘nbdkit_error’ errors are printed in red when writing to the terminal, making them much easier to see. ‘nbdkit_parse_size’ rejects negative values, eg. ‘nbdkit memory size=-100’ (Nikolay Ivanets). The ‘curl’ plugin now supports cookies, password auth and proxies. It can also limit URLs to whitelisted protocols. This makes it broadly feature equivalent to and a replacement for the qemu curl block driver. The ‘partitioning’ plugin can now create MBR logical partitions. Previously it only supported 4 MBR primary partitions and if you wanted more than that you had to use GPT. The ‘partition’ filter also supports MBR logical partitions. The ‘python’ plugin creates plugins which are compatible with Python >= 3.7. Tests are now run under MALLOC_CHECK_=1 and MALLOC_PERTURB_=<random>. This causes some tests to crash (silently) because of a shutdown race which needs to be fixed. Test shell scripts now have a generic ‘requires’ function to skip tests if features are not present. C99 type ‘bool’ is now used in most places where appropriate. The protocol and connections code in the server has been split up because the single file had grown very large. (Thanks to Eric Blake for helping with protocol issues). Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
Reasonably Related Threads
- ANNOUNCE: nbdkit 1.6 - an NBD server toolkit with stable plugin API and permissive license
- ANNOUNCE: nbdkit 1.8 - an NBD server toolkit with stable plugin API and permissive license
- ANNOUNCE: nbdkit 1.1.13 - NBD server toolkit with stable API and permissive license
- ANNOUNCE: nbdkit 1.10 - an NBD server toolkit with stable plugin API and permissive license
- ANNOUNCE: nbdkit 1.4.0 - an NBD server toolkit with stable plugin ABI and permissive license