Skip to main content

Module protocol

Module protocol 

Source
Expand description

The client<->daemon wire protocol (version 1)

Typed request/response enums + bus events. Framing lives in wire; every type here is snapshot-pinned — changing any serialized shape is a protocol version bump recorded in the CHANGELOG.

Re-exports§

pub use channel::CHANNEL_VERSION;
pub use channel::ChildMessage;
pub use channel::ShepherdMessage;
pub use events::BusEvent;
pub use events::ProcessEventKind;
pub use frame::ServerFrame;
pub use request::ActionOutcome;
pub use request::ActionReply;
pub use request::DogSectionToml;
pub use request::DogSource;
pub use request::Envelope;
pub use request::ExitInfo;
pub use request::Hello;
pub use request::HelloAck;
pub use request::HelloReply;
pub use request::Lamb;
pub use request::LineOutcome;
pub use request::LineReply;
pub use request::ProcessInfo;
pub use request::ProcessInfoBuilder;
pub use request::Reply;
pub use request::Request;
pub use request::Response;
pub use request::RpcError;
pub use request::RpcErrorCode;
pub use request::SelectorSpec;
pub use request::SignalOutcome;
pub use request::SignalReply;
pub use wire::MAX_FRAME_BYTES;
pub use wire::WireError;
pub use wire::codec;
pub use wire::decode_frame;
pub use wire::encode_frame;

Modules§

channel
The shepherd channel: the newline-JSON wire carried on fd 3 between the shepherd and each spawned child.
events
Bus events broadcast to subscribed clients
frame
Anything the daemon writes to a connected client
request
RPC frames: requests, responses, envelopes, and structured errors
wire
Frame encoding shared by daemon and client Frame encoding: u32 length prefix + JSON payload

Constants§

PROTOCOL_VERSION
Wire protocol version.