xref: /cloud-hypervisor/Cargo.toml (revision 190d90196fff389b60b93b57acf958957b71b249)
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