xref: /aosp_15_r20/external/crosvm/docs/book/src/appendix/rust-vmm.md (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1# Summary
2
3crosvm is open to using rust-vmm modules. However, as of Fall 2020 there has been no progress toward
4that goal. Among other areas, differences in host operating system support methods in `sys-util`
5make integration challenging . It is possible to overcome this and enable crosvm to use common
6modules, but that work is not yet started.
7
8# Background
9
10## VMMs
11
12Soon after crosvm's code was public, Amazon used it as the basis for their own VMM named
13Firecracker. After Firecracker came other rust-based VMM implementations, all using parts of crosvm.
14In order to drive collaboration and code sharing, an independent organization was created, named
15[rust-vmm](https://github.com/rust-vmm).
16
17## Sharing Model
18
19Rust-vmm aims to provide common components consumed by various implementations of VMMs using rust.
20This allows for sharing components such as virtio queue parsing while allowing full customization by
21individual VMM implementation. The goal is for several VMM projects, Firecracker, Cloud Hypervisor,
22and crosvm to use the shared components.
23
24## Future
25
26crosvm and rust-vmm are most alike in the
27[kvm-bindings](https://github.com/rust-vmm/kvm-bindings)(limited by crosvm's use of aarch64 bindings
28on arm32 hosts), and [vmm-sys-util](https://github.com/rust-vmm/vmm-sys-util)(currently limited by
29differences in non-linux OS support strategy). Integrating these two modules would open the gates to
30sharing more code with rust-vmm, but that work remains low priority for crosvm.
31