Skip to main content

arcbox_virtio_vsock/
lib.rs

1//! `VirtIO` socket device (virtio-vsock).
2//!
3//! Provides socket communication between host and guest without requiring
4//! network configuration.
5//!
6//! On Darwin, the native VZ framework handles vsock. This implementation
7//! is primarily used for the custom HV backend (Hypervisor.framework).
8//!
9//! ## Module layout
10//!
11//! - `addr`: `VsockAddr`, `VsockHostConnections` trait, well-known CIDs
12//! - `protocol`: `VsockOp` enum + 44-byte `VsockHeader` wire format
13//! - `connection`: `VsockConnection` + `ConnectionState` (in-process loopback)
14//! - `backend`: `VsockBackend` trait + `LoopbackBackend`
15//! - `tcp`: `TcpBackend`
16//! - `host`: `HostVsockBackend` (Unix Hypervisor.framework path)
17//! - `device`: `VsockConfig`, `VirtioVsock` device, `VirtioDevice` impl
18//! - `manager`: connection manager (`VsockConnectionManager`, `RxOps`, …)
19
20#![allow(clippy::ptr_as_ptr)]
21#![allow(clippy::borrow_as_ptr)]
22#![allow(clippy::unnecessary_cast)]
23#![allow(clippy::cognitive_complexity)]
24#![allow(clippy::map_unwrap_or)]
25#![allow(clippy::useless_vec)]
26#![allow(clippy::unnecessary_wraps)]
27#![allow(clippy::redundant_clone)]
28#![allow(clippy::unnecessary_map_or)]
29#![allow(clippy::missing_fields_in_debug)]
30#![allow(clippy::needless_lifetimes)]
31#![allow(clippy::needless_collect)]
32#![allow(mismatched_lifetime_syntaxes)]
33#![allow(clippy::too_many_lines)]
34#![allow(clippy::too_many_arguments)]
35
36mod addr;
37mod backend;
38mod connection;
39mod device;
40#[cfg(unix)]
41mod host;
42pub mod manager;
43mod protocol;
44mod tcp;
45
46pub use addr::{VsockAddr, VsockHostConnections};
47pub use backend::{LoopbackBackend, VsockBackend};
48pub use connection::{ConnectionState, VsockConnection};
49pub use device::{VirtioVsock, VsockConfig};
50#[cfg(unix)]
51pub use host::HostVsockBackend;
52pub use protocol::{VsockHeader, VsockOp};
53pub use tcp::TcpBackend;