xref: /cloud-hypervisor/Cargo.toml (revision b686a5bb24f949e3b201308d69b01e85c14f1ad6)
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 = "45.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 by:
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.82.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.17"
45thiserror = "2.0.6"
46tpm = { path = "tpm" }
47tracer = { path = "tracer" }
48vm-memory = { workspace = true }
49vmm = { path = "vmm" }
50vmm-sys-util = { workspace = true }
51zbus = { version = "4.4.0", optional = true }
52
53[dev-dependencies]
54dirs = "6.0.0"
55net_util = { path = "net_util" }
56once_cell = "1.20.2"
57serde_json = { workspace = true }
58test_infra = { path = "test_infra" }
59wait-timeout = "0.2.0"
60
61# Please adjust `vmm::feature_list()` accordingly when changing the
62# feature list below
63[features]
64dbus_api = ["vmm/dbus_api", "zbus"]
65default = ["io_uring", "kvm"]
66dhat-heap = ["dhat", "vmm/dhat-heap"]       # For heap profiling
67guest_debug = ["vmm/guest_debug"]
68igvm = ["mshv", "vmm/igvm"]
69io_uring = ["vmm/io_uring"]
70kvm = ["vmm/kvm"]
71mshv = ["vmm/mshv"]
72pvmemcontrol = ["vmm/pvmemcontrol"]
73sev_snp = ["igvm", "mshv", "vmm/sev_snp"]
74tdx = ["vmm/tdx"]
75tracing = ["tracer/tracing", "vmm/tracing"]
76
77[workspace]
78members = [
79  "api_client",
80  "arch",
81  "block",
82  "devices",
83  "event_monitor",
84  "hypervisor",
85  "net_gen",
86  "net_util",
87  "option_parser",
88  "pci",
89  "performance-metrics",
90  "rate_limiter",
91  "serial_buffer",
92  "test_infra",
93  "tracer",
94  "vhost_user_block",
95  "vhost_user_net",
96  "virtio-devices",
97  "vm-allocator",
98  "vm-device",
99  "vm-migration",
100  "vm-virtio",
101  "vmm",
102]
103
104[workspace.dependencies]
105# rust-vmm crates
106acpi_tables = { git = "https://github.com/rust-vmm/acpi_tables", branch = "main" }
107kvm-bindings = "0.10.0"
108kvm-ioctls = "0.19.1"
109linux-loader = "0.13.0"
110mshv-bindings = "0.3.3"
111mshv-ioctls = "0.3.3"
112seccompiler = "0.5.0"
113vfio-bindings = { git = "https://github.com/rust-vmm/vfio", branch = "main" }
114vfio-ioctls = { git = "https://github.com/rust-vmm/vfio", branch = "main", default-features = false }
115vfio_user = { git = "https://github.com/rust-vmm/vfio-user", branch = "main" }
116vhost = { git = "https://github.com/rust-vmm/vhost", rev = "d983ae0" }
117vhost-user-backend = { git = "https://github.com/rust-vmm/vhost", rev = "d983ae0" }
118virtio-bindings = "0.2.4"
119virtio-queue = "0.14.0"
120vm-fdt = { git = "https://github.com/rust-vmm/vm-fdt", branch = "main" }
121vm-memory = "0.16.1"
122vmm-sys-util = "0.12.1"
123
124# igvm crates
125igvm = "0.3.4"
126igvm_defs = "0.3.1"
127
128# serde crates
129serde_json = "1.0.120"
130