mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
Adding itertools as dependency improves the iteration code in the following significantly. With this change, we don't need a copy of the vector. Just something that can be coerced into an iterator. We also use the bit position iterator to make the code somewhat clearer. The new code is much faster, because it will not iterate over every bit, just each 1 bit in the input. The next commit will complete this optimization and have some concrete numbers. On-behalf-of: SAP julian.stecklina@sap.com Signed-off-by: Julian Stecklina <julian.stecklina@cyberus-technology.de>
156 lines
4.1 KiB
TOML
156 lines
4.1 KiB
TOML
[package]
|
|
authors = ["The Cloud Hypervisor Authors"]
|
|
build = "build.rs"
|
|
default-run = "cloud-hypervisor"
|
|
description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM & MSHV"
|
|
edition = "2024"
|
|
homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor"
|
|
license = "Apache-2.0 AND BSD-3-Clause"
|
|
name = "cloud-hypervisor"
|
|
version = "49.0.0"
|
|
# Minimum buildable version:
|
|
# Keep in sync with version in .github/workflows/build.yaml
|
|
# Policy on MSRV (see #4318):
|
|
# Can only be bumped if satisfying any of the following:
|
|
# a.) A dependency requires it,
|
|
# b.) If we want to use a new feature and that MSRV is at least 6 months old,
|
|
# c.) There is a security issue that is addressed by the toolchain update.
|
|
rust-version = "1.89.0"
|
|
|
|
[profile.release]
|
|
codegen-units = 1
|
|
lto = true
|
|
opt-level = "s"
|
|
strip = true
|
|
|
|
[profile.profiling]
|
|
debug = true
|
|
inherits = "release"
|
|
strip = false
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
api_client = { path = "api_client" }
|
|
clap = { workspace = true, features = ["string"] }
|
|
dhat = { workspace = true, optional = true }
|
|
env_logger = { workspace = true }
|
|
epoll = { workspace = true }
|
|
event_monitor = { path = "event_monitor" }
|
|
hypervisor = { path = "hypervisor" }
|
|
libc = { workspace = true }
|
|
log = { workspace = true, features = ["std"] }
|
|
option_parser = { path = "option_parser" }
|
|
seccompiler = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
signal-hook = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tpm = { path = "tpm" }
|
|
tracer = { path = "tracer" }
|
|
vm-memory = { workspace = true }
|
|
vmm = { path = "vmm" }
|
|
vmm-sys-util = { workspace = true }
|
|
zbus = { version = "5.7.1", optional = true }
|
|
|
|
[dev-dependencies]
|
|
dirs = { workspace = true }
|
|
net_util = { path = "net_util" }
|
|
serde_json = { workspace = true }
|
|
test_infra = { path = "test_infra" }
|
|
wait-timeout = { workspace = true }
|
|
|
|
# Please adjust `vmm::feature_list()` accordingly when changing the
|
|
# feature list below
|
|
[features]
|
|
dbus_api = ["vmm/dbus_api", "zbus"]
|
|
default = ["io_uring", "kvm"]
|
|
dhat-heap = ["dhat", "vmm/dhat-heap"] # For heap profiling
|
|
fw_cfg = ["vmm/fw_cfg"]
|
|
guest_debug = ["vmm/guest_debug"]
|
|
igvm = ["mshv", "vmm/igvm"]
|
|
io_uring = ["vmm/io_uring"]
|
|
ivshmem = ["vmm/ivshmem"]
|
|
kvm = ["vmm/kvm"]
|
|
mshv = ["vmm/mshv"]
|
|
pvmemcontrol = ["vmm/pvmemcontrol"]
|
|
sev_snp = ["igvm", "mshv", "vmm/sev_snp"]
|
|
tdx = ["vmm/tdx"]
|
|
tracing = ["tracer/tracing", "vmm/tracing"]
|
|
|
|
[workspace]
|
|
members = [
|
|
"api_client",
|
|
"arch",
|
|
"block",
|
|
"devices",
|
|
"event_monitor",
|
|
"hypervisor",
|
|
"net_gen",
|
|
"net_util",
|
|
"option_parser",
|
|
"pci",
|
|
"performance-metrics",
|
|
"rate_limiter",
|
|
"serial_buffer",
|
|
"test_infra",
|
|
"tracer",
|
|
"vhost_user_block",
|
|
"vhost_user_net",
|
|
"virtio-devices",
|
|
"vm-allocator",
|
|
"vm-device",
|
|
"vm-migration",
|
|
"vm-virtio",
|
|
"vmm",
|
|
]
|
|
package.edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
# rust-vmm crates
|
|
acpi_tables = { git = "https://github.com/rust-vmm/acpi_tables", branch = "main" }
|
|
kvm-bindings = "0.12.1"
|
|
kvm-ioctls = "0.22.1"
|
|
linux-loader = "0.13.1"
|
|
mshv-bindings = "0.6.0"
|
|
mshv-ioctls = "0.6.0"
|
|
seccompiler = "0.5.0"
|
|
vfio-bindings = { version = "0.6.0", default-features = false }
|
|
vfio-ioctls = { version = "0.5.1", default-features = false }
|
|
vfio_user = { version = "0.1.1", default-features = false }
|
|
vhost = { version = "0.14.0", default-features = false }
|
|
vhost-user-backend = { version = "0.20.0", default-features = false }
|
|
virtio-bindings = "0.2.6"
|
|
virtio-queue = "0.16.0"
|
|
vm-fdt = "0.3.0"
|
|
vm-memory = "0.16.1"
|
|
vmm-sys-util = "0.14.0"
|
|
|
|
# igvm crates
|
|
# TODO: bump to 0.3.5 release
|
|
igvm = { git = "https://github.com/microsoft/igvm", branch = "main" }
|
|
igvm_defs = { git = "https://github.com/microsoft/igvm", branch = "main" }
|
|
|
|
# serde crates
|
|
serde = "1.0.228"
|
|
serde_json = "1.0.145"
|
|
serde_with = { version = "3.15.0", default-features = false }
|
|
|
|
# other crates
|
|
anyhow = "1.0.99"
|
|
bitflags = "2.9.4"
|
|
byteorder = "1.5.0"
|
|
cfg-if = "1.0.3"
|
|
clap = "4.5.49"
|
|
dhat = "0.3.3"
|
|
dirs = "6.0.0"
|
|
env_logger = "0.11.8"
|
|
epoll = "4.4.0"
|
|
flume = "0.11.1"
|
|
itertools = "0.14.0"
|
|
libc = "0.2.177"
|
|
log = "0.4.28"
|
|
signal-hook = "0.3.18"
|
|
thiserror = "2.0.17"
|
|
uuid = { version = "1.18.1" }
|
|
wait-timeout = "0.2.1"
|
|
zerocopy = { version = "0.8.27", default-features = false }
|