Richard W.M. Jones
2019-Jan-18 16:36 UTC
[Libguestfs] ANNOUNCE: nbdkit 1.10 - 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 performance and fuzzing, along with numerous other enhancements (full list 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!] 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.10-stable/ (other downloads: http://download.libguestfs.org/nbdkit/ ) New in this release: - Implemented NBD_FLAG_CAN_MULTI_CONN which greatly improves performance for clients that support it. - Implemented NBD_OPT_INFO (Eric Blake). - nbdkit-data-plugin and nbdkit-memory-plugin: By adding fine-grained locking, these plugins now use the fully parallel thread model. - nbdkit-cache-filter: The size of the cache can now be limited, and the cache reclaims space using an LRU algorithm. It has also been enhanced to support cache-on-read mode. The filter now uses a fully parallel thread model. - nbdkit-cow-filter: Use a fully parallel thread model. - nbdkit-sh-plugin: Inline scripts: https://rwmj.wordpress.com/2018/12/15/nbdkit-inline-scripts/ - nbdkit-sh-plugin: Full API version 2 is now supported. - OCaml bindings: Full API version 2 is now supported. - nbdkit-delay-filter allows you to specify the read, write, zero and trim delays individually. - nbdkit-curl-plugin: Add support for connecting to servers over Unix domain sockets. - Bash tab completion has been improved: Partial plugin names are expanded correctly, and plugin parameters containing '-' work. - Public header files can now be consumed by ISO C90 compilers (but GCC or Clang is still required to compile nbdkit itself). - A better non-cryptographically secure pseudo-random number generator (xoshiro256** 1.0) is now used on all platforms, replacing previous uses of random(3). - Fuzzing using American Fuzzy Lop is now supported, and was carried out, resulting in one error being found in the server (not security related). - New nbdkit-xz-filter: This replaces nbdkit-xz-plugin which will be removed in nbdkit 1.12. - New nbdkit-loop(1) man page documenting how to use nbdkit for loop mounts. See also: https://fosdem.org/2019/schedule/event/nbdkit/ - New nbdkit-full-plugin: Returns ENOSPC on every request. - attribute((format)), attribute((nonnull)) and attribute((sentinel)) are used in internal header files to improve code quality. - Logging using %m now works on all platforms, not just on Linux with glibc (Eric Blake). - VPATH builds partially supported (Eric Blake). 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
Possibly Parallel Threads
- ANNOUNCE: nbdkit 1.12 - 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.6 - 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.4.0 - an NBD server toolkit with stable plugin ABI and permissive license