Skip to content

Latest commit

 

History

History

README.md

@rushstack/rush-daemon-protocol

Public beta — this package is versioned at 0.x; its API may change between minor versions.

The engine-agnostic wire layer spoken by every client of the Rush daemon (rushd):

  • Frame taxonomy — five frame types: 0x01 control-json, 0x02 log-stdout, 0x03 log-stderr, 0x04 stdin, 0x05 event.
  • Length-prefixed binary codec — a streaming serializer/deserializer that is lossless for arbitrary (including non-UTF-8) payloads and tolerant of arbitrarily split or coalesced chunks.
  • DAEMON_PROTOCOL_VERSION — the negotiated protocol version constant.
  • Version negotiation — a hello/helloAck handshake with a typed ProtocolVersionMismatchError on major-version mismatch.
  • Event contract — the 0x05 frame payload envelope (currently a placeholder mirroring @rushstack/reporter's IReporterEventEnvelope; to be replaced by a direct reference when the reporter package lands) plus namespaced rushd.* extension events.
  • Per-subscription verbosity — a pure filter applied at event serialization so each client receives its own verbosity subset without mutating shared engine state.

Part of the Rush 6 / rushd re-architecture: microsoft/rushstack#5894.

Links

@rushstack/rush-daemon-protocol is part of the Rush Stack family of projects.