1*bb4ee6a4SAndroid Build Coastguard Worker# vHost 2*bb4ee6a4SAndroid Build Coastguard Worker 3*bb4ee6a4SAndroid Build Coastguard WorkerA pure rust library for vhost-user. This is a fork of 4*bb4ee6a4SAndroid Build Coastguard Worker[rust-vmm/vhost](https://github.com/rust-vmm/vhost). 5*bb4ee6a4SAndroid Build Coastguard Worker 6*bb4ee6a4SAndroid Build Coastguard Worker 7*bb4ee6a4SAndroid Build Coastguard Worker 8*bb4ee6a4SAndroid Build Coastguard WorkerThe 9*bb4ee6a4SAndroid Build Coastguard Worker[vhost-user protocol](https://qemu.readthedocs.io/en/latest/interop/vhost-user.html#communication) 10*bb4ee6a4SAndroid Build Coastguard Workeraims to implement vhost backend drivers in userspace, which complements the ioctl interface used to 11*bb4ee6a4SAndroid Build Coastguard Workercontrol the vhost implementation in the Linux kernel. It implements the control plane needed to 12*bb4ee6a4SAndroid Build Coastguard Workerestablish virtqueue sharing with a user space process on the same host. It uses communication over a 13*bb4ee6a4SAndroid Build Coastguard WorkerUnix domain socket to share file descriptors in the ancillary data of the message. 14*bb4ee6a4SAndroid Build Coastguard Worker 15*bb4ee6a4SAndroid Build Coastguard WorkerThe protocol defines two sides of the communication, frontend and backend. Frontend is the 16*bb4ee6a4SAndroid Build Coastguard Workerapplication that shares its virtqueues, backend is the consumer of the virtqueues. Frontend and 17*bb4ee6a4SAndroid Build Coastguard Workerbackend can be either a client (i.e. connecting) or server (listening) in the socket communication. 18