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