1[package] 2authors = ["The Cloud Hypervisor Authors"] 3build = "build.rs" 4default-run = "cloud-hypervisor" 5description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM & MSHV" 6edition = "2021" 7homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor" 8license = "Apache-2.0 AND BSD-3-Clause" 9name = "cloud-hypervisor" 10version = "46.0.0" 11# Minimum buildable version: 12# Keep in sync with version in .github/workflows/build.yaml 13# Policy on MSRV (see #4318): 14# Can only be bumped if satisfying any of the following: 15# a.) A dependency requires it, 16# b.) If we want to use a new feature and that MSRV is at least 6 months old, 17# c.) There is a security issue that is addressed by the toolchain update. 18rust-version = "1.83.0" 19 20[profile.release] 21codegen-units = 1 22lto = true 23opt-level = "s" 24strip = true 25 26[profile.profiling] 27debug = true 28inherits = "release" 29strip = false 30 31[dependencies] 32anyhow = "1.0.94" 33api_client = { path = "api_client" } 34clap = { version = "4.5.13", features = ["string"] } 35dhat = { version = "0.3.3", optional = true } 36epoll = "4.3.3" 37event_monitor = { path = "event_monitor" } 38hypervisor = { path = "hypervisor" } 39libc = "0.2.167" 40log = { version = "0.4.22", features = ["std"] } 41option_parser = { path = "option_parser" } 42seccompiler = { workspace = true } 43serde_json = { workspace = true } 44signal-hook = "0.3.18" 45thiserror = { workspace = true } 46tpm = { path = "tpm" } 47tracer = { path = "tracer" } 48vm-memory = { workspace = true } 49vmm = { path = "vmm" } 50vmm-sys-util = { workspace = true } 51zbus = { version = "5.7.1", optional = true } 52 53[dev-dependencies] 54dirs = "6.0.0" 55net_util = { path = "net_util" } 56serde_json = { workspace = true } 57test_infra = { path = "test_infra" } 58wait-timeout = "0.2.0" 59 60# Please adjust `vmm::feature_list()` accordingly when changing the 61# feature list below 62[features] 63dbus_api = ["vmm/dbus_api", "zbus"] 64default = ["io_uring", "kvm"] 65dhat-heap = ["dhat", "vmm/dhat-heap"] # For heap profiling 66guest_debug = ["vmm/guest_debug"] 67igvm = ["mshv", "vmm/igvm"] 68io_uring = ["vmm/io_uring"] 69kvm = ["vmm/kvm"] 70mshv = ["vmm/mshv"] 71pvmemcontrol = ["vmm/pvmemcontrol"] 72sev_snp = ["igvm", "mshv", "vmm/sev_snp"] 73tdx = ["vmm/tdx"] 74tracing = ["tracer/tracing", "vmm/tracing"] 75 76[workspace] 77members = [ 78 "api_client", 79 "arch", 80 "block", 81 "devices", 82 "event_monitor", 83 "hypervisor", 84 "net_gen", 85 "net_util", 86 "option_parser", 87 "pci", 88 "performance-metrics", 89 "rate_limiter", 90 "serial_buffer", 91 "test_infra", 92 "tracer", 93 "vhost_user_block", 94 "vhost_user_net", 95 "virtio-devices", 96 "vm-allocator", 97 "vm-device", 98 "vm-migration", 99 "vm-virtio", 100 "vmm", 101] 102 103[workspace.dependencies] 104# rust-vmm crates 105acpi_tables = { git = "https://github.com/rust-vmm/acpi_tables", branch = "main" } 106kvm-bindings = "0.12.0" 107kvm-ioctls = "0.22.0" 108linux-loader = "0.13.0" 109mshv-bindings = "0.5.1" 110mshv-ioctls = "0.5.1" 111seccompiler = "0.5.0" 112vfio-bindings = { version = "0.5.0", default-features = false } 113vfio-ioctls = { version = "0.5.0", default-features = false } 114vfio_user = { version = "0.1.0", default-features = false } 115vhost = { version = "0.14.0", default-features = false } 116vhost-user-backend = { version = "0.20.0", default-features = false } 117virtio-bindings = "0.2.6" 118virtio-queue = "0.16.0" 119vm-fdt = { git = "https://github.com/rust-vmm/vm-fdt", branch = "main" } 120vm-memory = "0.16.1" 121vmm-sys-util = "0.14.0" 122 123# igvm crates 124# TODO: bump to 0.3.5 release 125igvm = { git = "https://github.com/microsoft/igvm", branch = "main" } 126igvm_defs = { git = "https://github.com/microsoft/igvm", branch = "main" } 127 128# serde crates 129serde_json = "1.0.120" 130 131# other crates 132thiserror = "2.0.12" 133uuid = { version = "1.17.0" } 134zerocopy = { version = "0.8.26", default-features = false } 135