Bumps the vhost-device group with 17 updates in the /staging directory: | Package | From | To | | --- | --- | --- | | [clap](https://github.com/clap-rs/clap) | `4.5.16` | `4.5.19` | | [libc](https://github.com/rust-lang/libc) | `0.2.158` | `0.2.159` | | [thiserror](https://github.com/dtolnay/thiserror) | `1.0.63` | `1.0.64` | | [futures-executor](https://github.com/rust-lang/futures-rs) | `0.3.30` | `0.3.31` | | [vhost](https://github.com/rust-vmm/vhost) | `0.11.0` | `0.12.0` | | [vhost-user-backend](https://github.com/rust-vmm/vhost) | `0.15.0` | `0.16.0` | | [virtio-queue](https://github.com/rust-vmm/vm-virtio) | `0.12.0` | `0.13.0` | | [vm-memory](https://github.com/rust-vmm/vm-memory) | `0.14.1` | `0.15.0` | | [rstest](https://github.com/la10736/rstest) | `0.22.0` | `0.23.0` | | [tempfile](https://github.com/Stebalien/tempfile) | `3.12.0` | `3.13.0` | | [anyhow](https://github.com/dtolnay/anyhow) | `1.0.86` | `1.0.89` | | [autocfg](https://github.com/cuviper/autocfg) | `1.3.0` | `1.4.0` | | [futures](https://github.com/rust-lang/futures-rs) | `0.3.30` | `0.3.31` | | [indexmap](https://github.com/indexmap-rs/indexmap) | `2.4.0` | `2.6.0` | | [once_cell](https://github.com/matklad/once_cell) | `1.19.0` | `1.20.2` | | [regex](https://github.com/rust-lang/regex) | `1.10.6` | `1.11.0` | | [serde](https://github.com/serde-rs/serde) | `1.0.209` | `1.0.210` | Updates `clap` from 4.5.16 to 4.5.19 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.16...clap_complete-v4.5.19) Updates `env_logger` from 0.11.5 to 0.10.2 - [Release notes](https://github.com/rust-cli/env_logger/releases) - [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.5...v0.10.2) Updates `libc` from 0.2.158 to 0.2.159 - [Release notes](https://github.com/rust-lang/libc/releases) - [Changelog](https://github.com/rust-lang/libc/blob/0.2.159/CHANGELOG.md) - [Commits](https://github.com/rust-lang/libc/compare/0.2.158...0.2.159) Updates `thiserror` from 1.0.63 to 1.0.64 - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.63...1.0.64) Updates `futures-executor` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `vhost` from 0.11.0 to 0.12.0 - [Release notes](https://github.com/rust-vmm/vhost/releases) - [Commits](https://github.com/rust-vmm/vhost/compare/vhost-v0.11.0...vhost-v0.12.0) Updates `vhost-user-backend` from 0.15.0 to 0.16.0 - [Release notes](https://github.com/rust-vmm/vhost/releases) - [Commits](https://github.com/rust-vmm/vhost/compare/vhost-user-backend-v0.15.0...vhost-user-backend-v0.16.0) Updates `virtio-bindings` from 0.2.2 to 0.2.3 - [Release notes](https://github.com/rust-vmm/vm-virtio/releases) - [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-bindings-v0.2.2...virtio-bindings-v0.2.3) Updates `virtio-queue` from 0.12.0 to 0.13.0 - [Release notes](https://github.com/rust-vmm/vm-virtio/releases) - [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-queue-v0.12.0...virtio-queue-v0.13.0) Updates `vm-memory` from 0.14.1 to 0.15.0 - [Release notes](https://github.com/rust-vmm/vm-memory/releases) - [Changelog](https://github.com/rust-vmm/vm-memory/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-vmm/vm-memory/compare/v0.14.1...v0.15.0) Updates `rstest` from 0.22.0 to 0.23.0 - [Release notes](https://github.com/la10736/rstest/releases) - [Changelog](https://github.com/la10736/rstest/blob/master/CHANGELOG.md) - [Commits](https://github.com/la10736/rstest/compare/v0.22.0...v0.23.0) Updates `tempfile` from 3.12.0 to 3.13.0 - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](https://github.com/Stebalien/tempfile/compare/v3.12.0...v3.13.0) Updates `anyhow` from 1.0.86 to 1.0.89 - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.86...1.0.89) Updates `autocfg` from 1.3.0 to 1.4.0 - [Commits](https://github.com/cuviper/autocfg/compare/1.3.0...1.4.0) Updates `clap_builder` from 4.5.15 to 4.5.19 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.5.15...v4.5.19) Updates `clap_derive` from 4.5.13 to 4.5.18 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.5.13...v4.5.18) Updates `futures` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-channel` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-core` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-io` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-macro` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-sink` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-task` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `futures-util` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `indexmap` from 2.4.0 to 2.6.0 - [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md) - [Commits](https://github.com/indexmap-rs/indexmap/compare/2.4.0...2.6.0) Updates `once_cell` from 1.19.0 to 1.20.2 - [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md) - [Commits](https://github.com/matklad/once_cell/compare/v1.19.0...v1.20.2) Updates `proc-macro-crate` from 3.1.0 to 3.2.0 - [Release notes](https://github.com/bkchr/proc-macro-crate/releases) - [Commits](https://github.com/bkchr/proc-macro-crate/commits/v3.2.0) Updates `regex` from 1.10.6 to 1.11.0 - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.10.6...1.11.0) Updates `regex-automata` from 0.4.7 to 0.4.8 - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/commits) Updates `regex-syntax` from 0.8.4 to 0.8.5 - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/commits) Updates `rstest_macros` from 0.22.0 to 0.23.0 - [Release notes](https://github.com/la10736/rstest/releases) - [Changelog](https://github.com/la10736/rstest/blob/master/CHANGELOG.md) - [Commits](https://github.com/la10736/rstest/compare/v0.22.0...v0.23.0) Updates `rustc_version` from 0.4.0 to 0.4.1 - [Release notes](https://github.com/djc/rustc-version-rs/releases) - [Commits](https://github.com/djc/rustc-version-rs/compare/v0.4.0...v0.4.1) Updates `rustix` from 0.38.34 to 0.38.37 - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGELOG.md) - [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.34...v0.38.37) Updates `serde` from 1.0.209 to 1.0.210 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210) Updates `serde_derive` from 1.0.209 to 1.0.210 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210) Updates `thiserror-impl` from 1.0.63 to 1.0.64 - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.63...1.0.64) Updates `toml_edit` from 0.21.1 to 0.22.22 - [Commits](https://github.com/toml-rs/toml/compare/v0.21.1...v0.22.22) Updates `unicode-ident` from 1.0.12 to 1.0.13 - [Release notes](https://github.com/dtolnay/unicode-ident/releases) - [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.12...1.0.13) Updates `windows-sys` from 0.52.0 to 0.48.0 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/compare/0.52.0...0.48.0) Updates `windows-targets` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_aarch64_gnullvm` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_aarch64_msvc` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_i686_gnu` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_i686_msvc` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_x86_64_gnu` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_x86_64_gnullvm` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `windows_x86_64_msvc` from 0.52.6 to 0.48.5 - [Release notes](https://github.com/microsoft/windows-rs/releases) - [Commits](https://github.com/microsoft/windows-rs/commits/0.48.5) Updates `winnow` from 0.5.40 to 0.6.20 - [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md) - [Commits](https://github.com/winnow-rs/winnow/compare/v0.5.40...v0.6.20) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: env_logger dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: libc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-executor dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: vhost dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: vhost-user-backend dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: virtio-bindings dependency-type: direct:production update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: virtio-queue dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: vm-memory dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: rstest dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: anyhow dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: autocfg dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: clap_builder dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: clap_derive dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-channel dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-core dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-io dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-macro dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-sink dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-task dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: futures-util dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: indexmap dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: once_cell dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: proc-macro-crate dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: regex dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: regex-automata dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: regex-syntax dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: rstest_macros dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: rustc_version dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: rustix dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: serde dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: serde_derive dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: thiserror-impl dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: toml_edit dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: unicode-ident dependency-type: indirect update-type: version-update:semver-patch dependency-group: vhost-device - dependency-name: windows-sys dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows-targets dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_aarch64_gnullvm dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_aarch64_msvc dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_i686_gnu dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_i686_msvc dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_x86_64_gnu dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_x86_64_gnullvm dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: windows_x86_64_msvc dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device - dependency-name: winnow dependency-type: indirect update-type: version-update:semver-minor dependency-group: vhost-device ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .buildkite | ||
| .cargo | ||
| .github | ||
| rust-vmm-ci@92034f0e36 | ||
| staging | ||
| vhost-device-gpio | ||
| vhost-device-i2c | ||
| vhost-device-input | ||
| vhost-device-rng | ||
| vhost-device-scmi | ||
| vhost-device-scsi | ||
| vhost-device-sound | ||
| vhost-device-spi | ||
| vhost-device-template | ||
| vhost-device-vsock | ||
| .gitignore | ||
| .gitmodules | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CODEOWNERS | ||
| coverage_config_x86_64.json | ||
| LICENSE-APACHE | ||
| LICENSE-BSD-3-Clause | ||
| README.md | ||
vhost-device
Design
This repository hosts various 'vhost-user' device backends in their own crates. See their individual README.md files for specific information about those crates.
To be included here device backends must:
- be based on a published VIRTIO specification
- fulfil basic functionality requirements (in conjunction with a implemented driver)
- meet the rust-vmm dev requirements
Here is the list of device backends that we support:
The vhost-device workspace also provides a template to help new developers understand how to write their own vhost-user backend.
Staging Devices
Implementing a proper VirtIO device requires co-ordination between the specification, drivers and backend implementations. As these can all be in flux during development it was decided introducing a staging workspace which would allow developers to work within the main rust-vmm project while clearly marking the backends as not production ready.
To be included in the staging workspace there must at least be:
- A public proposal to extend the VIRTIO specification
- A public implementation of a device driver
- Documentation pointing to the above
More information may be found in its README file.
Here is the list of device backends in staging:
Testing and Code Coverage
Like the wider rust-vmm project we expect new features to come with comprehensive code coverage. However as a multi-binary repository there are cases where avoiding a drop in coverage can be hard and an exception to the approach is allowable. These are:
- adding a new binary target (aim at least 60% overall coverage)
- expanding the main function (a small drop is acceptable)
However any new feature added to an existing binary should not cause a drop in coverage. The general aim should be to always improve coverage.
Separation of Concerns
The binaries built by this repository can be run with any VMM which can act as a vhost-user frontend. Typically they have been tested with QEMU although the rust-vmm project does provide a vhost-user frontend crate for rust based VMMs.
While it's possible to implement all parts of the backend inside the vhost-device workspace consideration should be given to separating the VirtQueue handling and response logic to a device crate in the vm-virtio repository. This way a monolithic rust-vmm VMM implementation can reuse the core logic to service the virtio requests directly in the application.
Build dependency
The GPIO crate needs a local installation of libgpiod library to be available. If your distro ships libgpiod >= v2.0, then you should be fine.
Otherwise, you will need to build libgpiod yourself:
git clone --depth 1 --branch v2.0.x https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
cd libgpiod
./autogen.sh --prefix="$PWD/install/"
make install
In order to inform tools about the build location, you can now set:
export PKG_CONFIG_PATH="<PATH-TO-LIBGPIOD>/install/lib/pkgconfig/"
To prevent setting this in every terminal session, you can also configure cargo to set it automatically.
Xen support
Supporting Xen requires special handling while mapping the guest memory. The
vm-memory crate implements xen memory mapping support via a separate feature
xen, and this crate uses the same feature name to enable Xen support.
It was decided by the rust-vmm maintainers to keep the interface simple and
build the crate for either standard Unix memory mapping or Xen, and not both.