veyron-wire
Shared wire-protocol crate for Veyron:
frame framing, frame authentication, socket-path defaults, and the generated
Protobuf types. This is the protocol surface the Veyron kernel and its SDKs
both build on, so a plugin author can depend on veyron-wire alone instead
of pulling in the whole kernel crate.
What's inside
framing— frame read/write over an async stream (write_frame,write_frame_raw,read_frame,read_frame_with_timeout), fragmentation (FragmentHeader,parse_frag_header), and the wire constants (MAX_PAYLOAD_SIZE,COMPRESS_THRESHOLD,FLAG_MAC_PRESENT,FLAG_COMPRESSED,FLAG_RAW_BINARY,FLAG_FRAGMENTED).mac— HMAC-SHA256 frame authentication (derive_session_key,compute_tag,verify_tag).socket— default Unix socket path resolution (default_socket_path,default_private_dir), matching the kernel's$XDG_RUNTIME_DIR→/run/user/<uid>→~/.veyron/runfallback order.proto::veyron— protobuf types generated fromproto/veyron_protocol.protoat build time viaprost-build.WireError— the protocol-level error type returned byframingandmacfunctions.
Who uses this
- The
veyronkernel (path dependency, re-exports/wraps this crate's API so kernel call sites see no behavior change). veyron-sdk(Rust), via the published crates.io version.
C++ and Python SDKs can't depend on a Cargo crate directly — they vendor a
copy of proto/veyron_protocol.proto instead; see
veyron-sdk-cpp and
veyron-sdk-python.
MSRV
Rust 1.85.0.
License
MIT