veyron-wire 0.1.1

Veyron wire protocol: framing, frame MAC, and generated protobuf types shared by the kernel and its SDKs.
Documentation

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/run fallback order.
  • proto::veyron — protobuf types generated from proto/veyron_protocol.proto at build time via prost-build.
  • WireError — the protocol-level error type returned by framing and mac functions.

Who uses this

  • The veyron kernel (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