arcbox-vm-proto 0.8.0

Wire vocabulary shared by the arcbox-computer-runtime sandbox manager and the in-sandbox vm-agent init: boot parameters, exec-channel frames, file-channel frames.
Documentation

arcbox-vm-proto — the wire vocabulary between a sandbox host and the vm-agent init inside the sandbox.

Three channels, three modules:

  • [boot] — what the host passes through the kernel command line (ip=) and the net-reconfigure command it sends after a snapshot restore.
  • [exec] — the exec channel (guest vsock port [exec::AGENT_PORT]): frame opcodes, the session-start command, the listen-table wait request, and the readiness dial-out port.
  • [mod@file] — the file channel (guest vsock port [file::FILE_PORT]): frame opcodes, request payloads, and the stat/event DTOs.

Every frame on both channels is [u8 type][u32 LE len][payload]; the JSON payloads are the serde types here. This crate depends on serde alone so the agent — a static musl binary staged into every sandbox rootfs — links it without pulling in the manager, and the manager (arcbox-computer-runtime) links it so both ends decode the same bytes.

Compatibility

A restored snapshot resumes whatever vm-agent it was checkpointed with, so old agents stay in service indefinitely. Payloads are therefore evolved additively: new JSON fields carry #[serde(default)], new frame types are ignored by agents that predate them, and readers key variable-length binary payloads on their length rather than on the sender's version.