# Cloud Hypervisor Workspace # # The main crate producing the binaries is in `./cloud-hypervisor`. [profile.release] codegen-units = 1 lto = true opt-level = "s" strip = true [profile.profiling] debug = true inherits = "release" strip = false [workspace] members = [ "api_client", "arch", "block", "cloud-hypervisor", "devices", "event_monitor", "hypervisor", "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" # 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. package.rust-version = "1.89.0" resolver = "3" [workspace.dependencies] # rust-vmm crates acpi_tables = "0.2.0" iommufd-ioctls = "0.1.0" kvm-bindings = "0.14.0" kvm-ioctls = "0.24.0" linux-loader = "0.13.2" mshv-bindings = "0.6.9" mshv-ioctls = "0.6.9" seccompiler = "0.5.0" vfio-bindings = { version = "0.6.2", default-features = false } vfio-ioctls = { version = "0.6.0", default-features = false } vfio_user = { version = "0.1.3", default-features = false } vhost = { version = "0.16.0", default-features = false } vhost-user-backend = { version = "0.22.0", default-features = false } virtio-bindings = "0.2.6" virtio-queue = "0.17.0" vm-fdt = "0.3.0" vm-memory = "0.17.1" vmm-sys-util = "0.15.0" # igvm crates igvm = "0.4.0" igvm_defs = "0.4.0" # serde crates serde = "1.0.228" serde_json = "1.0.149" serde_with = { version = "3.18.0", default-features = false } # other crates anyhow = "1.0.102" bitflags = "2.11.1" byteorder = "1.5.0" cfg-if = "1.0.4" clap = "4.6.1" dhat = "0.3.3" dirs = "6.0.0" env_logger = "0.11.10" epoll = "4.4.0" flume = "0.12.0" itertools = "0.14.0" jiff = { version = "0.2", default-features = false, features = ["std"] } libc = "0.2.186" log = "0.4.29" sha2 = "0.11.0" signal-hook = "0.4.4" thiserror = "2.0.18" uuid = { version = "1.23.1" } wait-timeout = "0.2.1" zerocopy = { version = "0.8.48", default-features = false } [workspace.lints.clippy] # Any clippy lint (group) in alphabetical order: # https://rust-lang.github.io/rust-clippy/master/index.html # Groups all = "deny" # shorthand for the other groups but here for compleness complexity = "deny" correctness = "deny" perf = "deny" style = "deny" suspicious = "deny" # Individual Lints assertions_on_result_states = "deny" if_not_else = "deny" manual_string_new = "deny" map_unwrap_or = "deny" needless_pass_by_value = "deny" redundant_else = "deny" semicolon_if_nothing_returned = "deny" undocumented_unsafe_blocks = "deny" uninlined_format_args = "deny" unnecessary_semicolon = "deny" [workspace.lints.rust] # `level = warn` is irrelevant here but mandatory for rustc/cargo unexpected_cfgs = { level = "warn", check-cfg = ['cfg(devcli_testenv)'] }