前言
在云原生、Serverless 与机密计算快速发展的今天,传统 C 语言实现的虚拟化栈(如 QEMU)面临内存安全漏洞频发、代码体积庞大、攻击面过宽等问题。2019 年由 Intel、Google、AWS、阿里云等多家厂商联合发起的 rust-vmm 项目应运而生 —— 它不是一款完整的虚拟机监视器(VMM),而是一套高度解耦、可按需组装的 Rust 虚拟化基础组件库,为整个行业提供了构建轻量、安全、高性能 VMM 的标准化「积木」。
rust-vmm 遵循「一个组件一个 crate」的设计原则,所有 crate 独立发布、按需依赖,从最底层的系统调用封装到上层的设备模拟,覆盖了虚拟化技术栈的全部核心环节。本文将按功能分层,系统梳理 rust-vmm 生态下的全部核心 crate 及其定位、能力、核心 API 与最小调用示例。
核实声明:本文所有事实(仓库归属、架构支持、trait 名称、crate 是否存在、API 签名)均经过对 rust-vmm 组织 GitHub 仓库与 crates.io 的实际比对,更新于 2026-06;示例 API 以 docs.rs latest 为准。近一两年 rust-vmm 推动了多次「workspace 化合并」,部分原本独立的仓库(如
kvm-bindings、kvm-ioctls、vfio-user)已被归档并整合到 workspace 仓库中,下文会标注实际位置。
整体架构:分层解耦的虚拟化积木
rust-vmm 采用自底向上的分层设计,每一层只依赖下层能力,职责边界清晰:
graph TD
A[工程化与参考实现
rust-vmm-ci / rust-vmm-container / vmm-reference] --> B
B[启动与兼容层
linux-loader / vm-fdt / vm-superio / vm-superio-ser] --> C
C[硬件直通层
vfio-bindings / vfio-ioctls / vfio-user] --> D
D[VirtIO & vhost 半虚拟化层
virtio-bindings / virtio-queue / virtio-queue-ser / vhost / vhost-user-backend / vhost-device-*] --> E
E[核心资源层
vm-memory / vm-allocator / vm-device] --> F
F[Hypervisor 抽象层
kvm-bindings / kvm-ioctls / mshv-bindings / mshv-ioctls] --> G
G[基础系统工具层
vmm-sys-util / event-manager]
基础系统工具层
这一层是整个 rust-vmm 生态的公共基座,将操作系统底层能力封装为安全、跨平台的 Rust 接口。
vmm-sys-util
- GitHub:https://github.com/rust-vmm/vmm-sys-util
- crates.io:https://crates.io/crates/vmm-sys-util
- 平台支持:Linux(完整)/ Windows(部分支持)
- 架构支持:x86_64 / aarch64 / riscv64
所有 rust-vmm 组件最核心的公共依赖。它将 eventfd、ioctl、epoll、文件描述符管理、tempfile、字节序处理、errno 错误类型、灵活数组成员(FAM)安全封装等系统级原语统一收敛在一个 crate 中,把 unsafe 收拢到最小范围。
核心 API:eventfd::EventFd、ioctl_*! 宏家族(ioctl_none! / ioctl_io! / ioctl_ior! / ioctl_iow! / ioctl_iowr!)、ioctl_with_val / ioctl_with_ref、tempfile::TempFile、epoll、errno::Error、fam::FamStruct。
最小示例(来自源码 doctest):
1 | use vmm_sys_util::eventfd::{EventFd, EFD_NONBLOCK}; |
EventFd 在 rust-vmm 里被广泛用作中断注入信号、退出信号、跨线程唤醒的轻量通道。
event-manager
- GitHub:https://github.com/rust-vmm/event-manager
- crates.io:https://crates.io/crates/event-manager
- 平台支持:仅 Linux(基于 epoll)
轻量级事件驱动框架,VMM 中 I/O 事件、中断事件的核心调度器。它采用「事件管理器 - 事件订阅者」模型,提供两种订阅 trait 适配不同借用语义场景:
EventSubscriber:要求&self,适用于通过Arc<T>共享、内部用Mutex自管的场景MutEventSubscriber:要求&mut self,适用于经Mutex<T>/RefCell<T>包装后由 manager 独占借用的场景
核心 API:EventManager<T>、EventSubscriber / MutEventSubscriber、EventOps、Events、SubscriberId、SubscriberOps。
最小示例:
1 | use event_manager::{EventManager, EventOps, Events, MutEventSubscriber}; |
init 中注册感兴趣的 fd,process 中处理就绪事件;VMM 在主循环里反复调用 EventManager::run。
Hypervisor 抽象层
这一层直接对接操作系统内核的虚拟化模块,将底层 unsafe 的内核接口封装为类型安全的 Rust API。rust-vmm 同时支持 Linux KVM 与微软 MSHV 两大虚拟化平台。
KVM 系列:Linux 硬件虚拟化标准接口
自 2024 年起,原
rust-vmm/kvm-bindings与rust-vmm/kvm-ioctls已归档合并至单仓库 https://github.com/rust-vmm/kvm(workspace),但 crates.io 上的两个 crate 名称与发布节奏不变。
kvm-bindings
- GitHub:https://github.com/rust-vmm/kvm(原 https://github.com/rust-vmm/kvm-bindings 已归档)
- crates.io:https://crates.io/crates/kvm-bindings
- 架构支持:x86_64 / aarch64 / riscv64(三架构均已稳定支持)
通过 bindgen 自动生成的 Linux KVM API 原生 FFI 绑定,包含所有 KVM ioctl 命令、数据结构与常量定义,并为灵活数组成员(如 kvm_cpuid2、kvm_msr_list)提供安全的 FAM 封装,是 Rust 代码与 KVM 内核交互的底层协议基础。
kvm-ioctls
- GitHub:https://github.com/rust-vmm/kvm(原 https://github.com/rust-vmm/kvm-ioctls 已归档)
- crates.io:https://crates.io/crates/kvm-ioctls
- 架构支持:x86_64 / aarch64 / riscv64
构建在 kvm-bindings 之上的安全封装层,将原本 unsafe 的 ioctl 调用转化为类型安全的高级 API。
核心 API:
Kvm:系统级 ioctl 入口(new、create_vm、get_api_version、check_extension)VmFd:VM 级(set_user_memory_region、create_vcpu、get_dirty_log、create_irq_chip、register_irqfd)VcpuFd:vCPU 级(get_regs/set_regs、get_sregs/set_sregs、run)VcpuExit:枚举Hlt/IoIn/IoOut/MmioRead/MmioWrite/ …
最小示例(节选自 kvm-ioctls 顶层 doctest,x86_64):
1 | use kvm_bindings::{kvm_userspace_memory_region, KVM_MEM_LOG_DIRTY_PAGES}; |
经典的「五步走」流程:Kvm::new → create_vm → set_user_memory_region → create_vcpu 并 setup regs → vcpu.run() 循环匹配 VcpuExit。
MSHV 系列:Windows 平台虚拟化支持
mshv-bindings / mshv-ioctls
- GitHub:https://github.com/rust-vmm/mshv(同一 workspace 包含两个 crate)
- crates.io:https://crates.io/crates/mshv-bindings、https://crates.io/crates/mshv-ioctls
- 架构支持:官方 README 声明 x86_64;arm64 绑定文件已生成、支持正在演进中(尚未列为 Supported Platform)
对应微软 Hypervisor(MSHV)的 FFI 绑定与安全接口封装,让 rust-vmm 突破 Linux 限制,可适配 Azure 等 Windows 云环境。设计逻辑与 KVM 系列完全一致(Mshv / VmFd / VcpuFd),降低跨平台开发的心智负担。
虚拟机核心资源层
这一层定义了虚拟机的核心资源模型 —— 内存、地址空间、设备抽象,是所有虚拟设备与业务逻辑的运行载体。
vm-memory
- GitHub:https://github.com/rust-vmm/vm-memory
- crates.io:https://crates.io/crates/vm-memory
- 架构支持:x86_64 / aarch64 / riscv64;OS:Linux/Unix/Windows;可选
xenfeature(仅 Unix)
虚拟机客户机内存管理的基石组件。它支持匿名内存、文件 - backed 内存的 mmap 映射,实现了客户机物理地址(GPA)到宿主机虚拟地址(HVA)的安全转换,提供脏页跟踪、原子读写、零拷贝数据传输、跨字节序访问等核心能力,是设备 DMA 模拟、虚拟机热迁移、内存快照的基础支撑。
核心 API:
- trait:
GuestMemory(只读视图)、GuestMemoryRegion、Bytes(read/write/read_obj/write_obj)、Address - 类型:
GuestAddress、GuestUsize、GuestMemoryMmap<B = ()>、MmapRegion、GuestRegionMmap、GuestMemoryAtomic(多线程换页 / 快照)
最小示例(来自 README):
1 | use vm_memory::{Bytes, GuestAddress, GuestMemoryMmap}; |
GuestMemoryMmap::from_ranges 在宿主匿名 mmap 出来的内存基础上构建 guest 物理地址空间;Bytes trait 让设备模型直接以 (addr, slice) 方式跨 region 读写。
vm-allocator
虚拟机系统资源分配器,负责 MMIO 地址空间、PIO 端口、中断号(GSI)、设备 ID 等硬件资源的分配与回收。它支持地址区间对齐校验、资源冲突检测,确保虚拟机的硬件资源布局符合架构规范。
核心 API:
IdAllocator:整数资源分配器(如 GSI、KVM memslot id),用BTreeSet维护已释放 IDAddressAllocator:区间资源分配器(基于 IntervalTree 的地址段)AllocPolicy::{FirstMatch, LastMatch, ExactMatch}、Constraint、RangeInclusive
最小示例:
1 | use vm_allocator::{AddressAllocator, AllocPolicy, IdAllocator}; |
vm-device
虚拟设备的统一抽象框架。它定义了 PIO 与 MMIO 两条总线上的设备 trait,并提供 IoManager 作为按地址段路由 I/O 的总线分发器。所有虚拟设备均可基于这套抽象开发,无缝接入任意 VMM。
核心 API:
- 设备 trait(共 4 个):
- PIO:
DevicePio(不可变 self)、MutDevicePio(可变 self) - MMIO:
DeviceMmio(不可变 self)、MutDeviceMmio(可变 self)
- PIO:
- 总线 trait:
PioManager、MmioManager - 具体管理器:
IoManager - 地址类型:
PioAddress、PioRange、MmioAddress、MmioRange
最小示例(来自 README):
1 | use std::sync::{Arc, Mutex}; |
VMM 在 VcpuExit::IoOut/MmioWrite 上调用 mgr.pio_write/mmio_write,Manager 按地址范围找到对应设备并转发。
VirtIO 生态层
VirtIO 是云计算领域的事实半虚拟化设备标准,rust-vmm 提供了从协议绑定到队列实现、再到设备框架的完整支持。
仓库结构:
virtio-bindings、virtio-queue、virtio-queue-ser、virtio-blk、virtio-console、virtio-device、virtio-vsock等 crate 同属一个仓库 https://github.com/rust-vmm/vm-virtio(workspace),并非各自独立仓库,且 crates.io 上没有名为vm-virtio的 crate,仓库名只是 workspace 容器。
virtio-bindings
- GitHub:https://github.com/rust-vmm/vm-virtio(子 crate
virtio-bindings/) - crates.io:https://crates.io/crates/virtio-bindings
VirtIO 规范的原生 FFI 绑定(来源是 Linux kernel 的 virtio uapi 头文件),定义了 VirtIO 设备的标准数据结构、特性位、队列协议常量,按内核版本提供不同 feature。是所有 VirtIO 相关组件的协议底座。
virtio-queue
- GitHub:https://github.com/rust-vmm/vm-virtio(子 crate
virtio-queue/) - crates.io:https://crates.io/crates/virtio-queue
VirtIO Split Virtqueue 的纯 Rust 完整实现,包含描述符表、可用环(avail ring)、使用环(used ring)的全部逻辑,并通过 Kani 进行了形式化证明。
核心 API:
Queue(单线程)、QueueSync(Arc<Mutex<Queue>>)- trait:
QueueT/QueueOwnedT Descriptor、DescriptorChain、DescriptorChainRwIter、AvailIterQueueState(save/restore 用)
最小示例(节选自 Queue doctest):
1 | use virtio_queue::{Queue, QueueOwnedT, QueueT}; |
标准的 split virtqueue 处理循环 —— 禁用通知 → 迭代 AvailIter 取出 DescriptorChain → 处理后 add_used → 按 needs_notification 决定是否触发中断。
virtio-queue-ser
- GitHub:https://github.com/rust-vmm/vm-virtio(子 crate
virtio-queue-ser/) - crates.io:https://crates.io/crates/virtio-queue-ser
virtio-queue 的版本感知序列化扩展,对 QueueState 进行序列化与反序列化。它是热迁移的关键 —— 虚拟机暂停后,可将所有 VirtIO 设备的队列状态持久化,目标主机恢复后重建队列状态,保证业务无感知迁移。
vhost 与 vhost-user 层
vhost 系列组件将 VirtIO 设备的数据面从 VMM 进程中剥离,分别下沉到内核态(vhost)、独立用户态进程(vhost-user)或硬件(vDPA),既提升性能,又通过进程隔离缩小攻击面。
vhost
- GitHub:https://github.com/rust-vmm/vhost(workspace,同时包含
vhost-user-backend) - crates.io:https://crates.io/crates/vhost
vhost、vhost-user、vDPA 三种加速方案的统一抽象库。它屏蔽了内核态 vhost、用户态 vhost-user、硬件 vDPA 的实现差异,提供统一的 vring 操作、事件通知、特性协商接口。
vhost-user-backend
- GitHub:https://github.com/rust-vmm/vhost(与
vhostcrate 同 workspace 子 crate) - crates.io:https://crates.io/crates/vhost-user-backend
vhost-user 后端设备的通用开发框架,完整封装了 vhost-user 协议的控制面交互逻辑:握手、特性协商、队列配置、生命周期管理、中断注入。开发者只需实现设备的数据面处理逻辑。
核心 API:
- trait:
VhostUserBackend/VhostUserBackendMut(num_queues、max_queue_size、features、set_event_idx、update_memory、handle_event、process_queue等) VhostUserDaemon<S, V, B>:服务端入口(new/start/wait/get_epoll_handlers)- vring trait:
VringT,三种实现VringState/VringMutex/VringRwLock
最小示例(来自 README,关键骨架;下面的 Error::* 为读者自定义错误类型,需结合具体后端实现):
1 | use vhost_user_backend::{VhostUserBackendMut, VringMutex, VringT}; |
vhost-device 系列
- GitHub:https://github.com/rust-vmm/vhost-device(workspace)
rust-vmm 社区维护的开箱即用 vhost-user 设备集合,每个设备是 workspace 内独立的二进制 crate(vhost-device-<name>)。截至 2026-06,仓库内官方设备清单(按字母序):
| crate | 用途 | crates.io |
|---|---|---|
vhost-device-can |
CAN 总线(车载 / 工控) | https://crates.io/crates/vhost-device-can |
vhost-device-console |
串口 / 控制台 | https://crates.io/crates/vhost-device-console |
vhost-device-gpio |
GPIO | https://crates.io/crates/vhost-device-gpio |
vhost-device-gpu |
GPU(virtio-gpu) | https://crates.io/crates/vhost-device-gpu |
vhost-device-i2c |
I2C 总线 | https://crates.io/crates/vhost-device-i2c |
vhost-device-input |
输入设备(键鼠等) | https://crates.io/crates/vhost-device-input |
vhost-device-rng |
熵源 / 随机数 | https://crates.io/crates/vhost-device-rng |
vhost-device-scmi |
ARM SCMI 协议 | https://crates.io/crates/vhost-device-scmi |
vhost-device-scsi |
SCSI 块存储 | https://crates.io/crates/vhost-device-scsi |
vhost-device-sound |
音频(virtio-snd) | https://crates.io/crates/vhost-device-sound |
vhost-device-spi |
SPI 总线 | https://crates.io/crates/vhost-device-spi |
vhost-device-vsock |
guest-host socket 通道 | https://crates.io/crates/vhost-device-vsock |
vhost-device-template |
新设备开发模板 | — |
vhost-device-video(staging) |
视频编解码 | — |
辨析:
vhost-device-blk、vhost-device-net并不存在于本仓库。块设备 / 网络设备的 vhost-user 实现一般由 VMM 自带(如 Cloud Hypervisor 的vhost-user-block、SPDK 的vhost-user-blk、DPDK 的vhost-user-net)或者部署内核态 vhost-net。
VFIO 硬件直通层
对于需要极致性能的场景(如 GPU 计算、高速网卡),rust-vmm 提供了完整的 VFIO 硬件直通支持。
原
rust-vmm/vfio-user已于 2025 年归档,源码迁移至 https://github.com/rust-vmm/vfio workspace;vfio-bindings、vfio-ioctls、vfio-user三个 crate 现位于同一仓库。
vfio-bindings
- GitHub:https://github.com/rust-vmm/vfio(子 crate
vfio-bindings/) - crates.io:https://crates.io/crates/vfio-bindings
Linux VFIO(Virtual Function I/O)子系统的 FFI 绑定,包含 VFIO 容器、设备组、物理设备的所有数据结构与 ioctl 命令定义。
vfio-ioctls
- GitHub:https://github.com/rust-vmm/vfio(子 crate
vfio-ioctls/) - crates.io:https://crates.io/crates/vfio-ioctls
- 平台支持:Linux;x86_64 主测,aarch64 支持中(依赖 ARM SMMU)
VFIO API 的安全 Rust 封装,支持 PCIe 设备的完整透传流程。
核心 API:
VfioContainer:包装/dev/vfio/vfio,提供vfio_dma_map/vfio_dma_unmapVfioDevice:单个透传设备(get_irq_info、enable_irq、region_read/region_write、get_region_info)VfioGroup、VfioRegion、VfioIrq、错误类型VfioError
最小骨架(仓库未提供独立 examples,下面按公共 API 还原):
1 | use std::path::Path; |
vfio-user
- GitHub:https://github.com/rust-vmm/vfio(子 crate
vfio-user/,原独立仓库rust-vmm/vfio-user已于 2025-05 归档) - crates.io:https://crates.io/crates/vfio-user
vfio-user 协议(基于 Nutanix libvfio-user 规范)的纯 Rust 实现,同时提供 Client(VMM 侧)与 Server(设备侧)两种 struct,支持把物理 / 模拟设备以 socket 形式远程挂载到虚拟机,适合分布式虚拟化与设备池化。
关于 iommufd:截至 2026-06,rust-vmm 组织下并不存在
iommufd-bindings或iommufd-ioctls这两个 crate。Linux 新一代 iommufd 子系统的能力目前通过vfio-bindings/vfio-ioctls在 VFIO 容器/IOMMUFD 兼容路径中暴露;如未来 rust-vmm 推出独立的 iommufd crate,会以 workspace 子 crate 形式发布在 vfio 仓库。本节不再假装存在这两个 crate。
启动与兼容层
这一层提供虚拟机启动所需的内核加载、硬件信息传递、legacy 设备兼容能力,是 Guest OS 正常引导的基础。
vm-superio / vm-superio-ser
- GitHub:https://github.com/rust-vmm/vm-superio(workspace,包含两个 crate)
- crates.io:https://crates.io/crates/vm-superio、https://crates.io/crates/vm-superio-ser
经典超级 I/O 控制器的模拟实现,包含:
Serial<T, EV, W>:16550A UART 串口(PC 与多数嵌入式平台通用)Rtc<EV>:ARM PL031 RTC(注意是 ARM 的 PL031,不是 PC 上的 CMOS RTC,也不是 i8042)I8042Device:极简 i8042 PS/2 控制器,目前仅模拟 CPU Reset 命令用于关机通告
vm-superio-ser 提供配套的 *StateSer 序列化结构,支持热迁移时 legacy 设备状态的 save/restore。
最小示例(16550A UART):
1 | use std::io::{Error, Result}; |
最小示例(PL031 RTC):
1 | use std::time::{SystemTime, UNIX_EPOCH}; |
linux-loader
- GitHub:https://github.com/rust-vmm/linux-loader
- crates.io:https://crates.io/crates/linux-loader
- 架构支持:x86_64 / aarch64 / riscv64
Linux 内核加载器,按架构提供不同的具体实现:
| Loader | feature | 适用范围 |
|---|---|---|
loader::elf::Elf |
elf |
x86_64:同时承担 Linux 64-bit boot protocol 与 PVH boot protocol,PVH 入口由 ELF Note 发现,编码在结果的 pvh_boot_cap 字段 |
loader::bzimage::BzImage |
bzimage |
x86_64:传统 bzImage |
loader::pe::PE |
pe |
aarch64 / riscv64:内核 Image(PE/COFF 格式) |
注意:
PVH不是独立 loader,而是Elfloader 通过KernelLoaderResult::pvh_boot_cap暴露的能力。
核心 API:trait KernelLoader::load、返回值 KernelLoaderResult(kernel_load、kernel_end、setup_header、pvh_boot_cap)、独立函数 load_cmdline、命令行构造器 Cmdline。
最小示例(节选自 README,bzImage):
1 | use std::fs::File; |
vm-fdt
- GitHub:https://github.com/rust-vmm/vm-fdt
- crates.io:https://crates.io/crates/vm-fdt
- 维护状态:低频维护中,最近发布 v0.3.0(2023-11,支持
no_std);最近一次提交 2024-04,未弃用
扁平化设备树(FDT/DTB)生成库,符合 Devicetree Specification 规范。在 aarch64、riscv64 等架构下,它负责向 Guest OS 传递硬件拓扑、内存布局、中断控制器、设备地址等启动信息。
核心 API:FdtWriter(new / begin_node / end_node / finish)、节点句柄 FdtWriterNode、属性 setter(property_string / property_u32 / property_u64 / property_array_u32 / property_array_u64 / property_null / property_string_list / 裸字节 property)。
最小示例(来自 README):
1 | use vm_fdt::{Error, FdtWriter}; |
工程化与参考实现
本节的三个项目都不是 crate(crates.io 上未发布),而是配套基础设施仓库。
rust-vmm-ci
社区统一的 CI 测试框架(Buildkite pipeline + pytest),通过 git submodule 引入到各 rust-vmm 仓库,提供一致的单元测试、格式检查(rustfmt)、Clippy、依赖漏洞审计、覆盖率检查。
rust-vmm-container
预配置的开发测试 Docker 镜像(rustvmm/dev),内置 Rust 工具链、x86_64 / aarch64 / riscv64 平台的内核头文件、QEMU 测试工具、依赖库等,让开发者一键搭建一致的 rust-vmm 开发与测试环境。
vmm-reference
官方参考 VMM 实现,通过极少量胶水代码串联起核心 rust-vmm 组件,构建出一个可直接运行的最小功能虚拟机。注意它声明为「实验性」、不应用于生产,定位是学习 / 验证 / 二次开发的范本。
生态落地与应用价值
rust-vmm 组件已经成为业界 Rust VMM 的事实标准,被大量生产级项目广泛复用:
- Firecracker(AWS):Serverless 微虚拟机标杆,核心依赖
kvm-ioctls、vm-memory、virtio-queue、linux-loader、vm-superio、event-manager等组件,实现毫秒级启动与极低内存开销 - Cloud Hypervisor:云原生通用 VMM,Kata Containers 主流后端之一,几乎覆盖全部 rust-vmm 组件,支持热迁移、TDX/SEV 机密计算、VFIO 直通等高级能力
- Dragonball(蚂蚁/阿里):Kata Containers 内置 VMM,针对容器场景优化,深度复用 rust-vmm 模块化能力
- StratoVirt(华为 openEuler):面向云、边缘、嵌入式的轻量化虚拟机,跨架构支持依托 rust-vmm 实现
- crosvm(Google):ChromeOS / Android 的沙盒虚拟机,是 rust-vmm 组件的重要上游贡献者
与传统 QEMU 相比,基于 rust-vmm 构建的 VMM 拥有天然内存安全、攻击面极小、按需裁剪、启动极速等优势,尤其适合 Serverless 函数计算、安全容器、机密计算、边缘虚拟化等新一代云场景。
总结
rust-vmm 的核心价值,在于用 Rust 的内存安全特性与模块化设计,重新定义了虚拟化基础设施的构建方式。它终结了各个 VMM 项目重复造轮子的局面,将 KVM 交互、内存管理、VirtIO 协议、设备模型等通用能力沉淀为标准化组件,让开发者可以聚焦业务场景创新,而非重复实现底层虚拟化逻辑。
随着云原生与安全需求的持续升级,rust-vmm 生态仍在不断扩展 ——RISC-V 架构(KVM / linux-loader / vm-memory 已稳定支持)、机密计算(TDX / SEV / SEV-SNP / pKVM)、更多设备模型(sound、video、scmi)都在持续推进。它不仅是 Rust 语言在系统级领域的标杆项目,更是下一代云基础设施的重要技术基石。
参考链接
- rust-vmm 组织主页:https://github.com/rust-vmm
- rust-vmm community(贡献规范、crate 治理):https://github.com/rust-vmm/community
- rust-vmm monorepo(集中后的工具仓库):https://github.com/rust-vmm/rust-vmm
- crates.io 关键字搜索:https://crates.io/search?q=rust-vmm


