# @suaveplan/network-plugin-protocol - Network protocol plugin: 13-byte binary header, message encoder/decoder, pipeline, serialization strategies, priority queue, batching, TTL, and route cache ## Summary Network protocol plugin for the mesh system. ## Documentation tree - [batcher](./src/batcher/batcher.md) — _(no submodules)_ - [batcher](./src/batcher/batcher.md) — _(no submodules)_ - [decoder](./src/decoder/decoder.md) — _(no submodules)_ - [decoder](./src/decoder/decoder.md) — _(no submodules)_ - [encoder](./src/encoder/encoder.md) — _(no submodules)_ - [encoder](./src/encoder/encoder.md) — _(no submodules)_ - [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_ - [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_ - [protocol](./src/protocol/protocol.md) — _(no submodules)_ - [protocol-plugin](./src/protocol/protocol-plugin.md) — The main plugin implementation that integrates the protocol layer into a `NetworkNode`. `ProtocolPlugin` implements the… - [protocol](./src/protocol/protocol.md) — _(no submodules)_ - [queue](./src/queue/queue.md) — _(no submodules)_ - [queue](./src/queue/queue.md) — _(no submodules)_ - [serializer](./src/serializer/serializer.md) — _(no submodules)_ - [serializer](./src/serializer/serializer.md) — _(no submodules)_ - [ttl](./src/ttl/ttl.md) — _(no submodules)_ - [ttl](./src/ttl/ttl.md) — _(no submodules)_ - [error-codes](./src/error-codes.md) — Defines the stable error-code registry for the `@suaveplan/network-plugin-protocol` package. All runtime failures withi… - [batcher](./src/batcher/batcher.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [protocol](./src/protocol/protocol.md) — _(no submodules)_- [protocol-plugin](./src/protocol/protocol-plugin.md) — The main plugin implementation that integrates the protocol layer into a `NetworkNode`. `ProtocolPlugin` implements the… - [protocol](./src/protocol/protocol.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_- [error-codes](./src/error-codes.md) — Defines the stable error-code registry for the `@suaveplan/network-plugin-protocol` package. All runtime failures withi… - [batcher](./src/batcher/batcher.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [protocol](./src/protocol/protocol.md) — _(no submodules)_- [protocol-plugin](./src/protocol/protocol-plugin.md) — The main plugin implementation that integrates the protocol layer into a `NetworkNode`. `ProtocolPlugin` implements the… - [protocol](./src/protocol/protocol.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_- [error-codes](./src/error-codes.md) — Defines the stable error-code registry for the `@suaveplan/network-plugin-protocol` package. All runtime failures withi… - [batcher](./src/batcher/batcher.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [protocol](./src/protocol/protocol.md) — _(no submodules)_- [protocol-plugin](./src/protocol/protocol-plugin.md) — The main plugin implementation that integrates the protocol layer into a `NetworkNode`. `ProtocolPlugin` implements the… - [protocol](./src/protocol/protocol.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_- [error-codes](./src/error-codes.md) — Defines the stable error-code registry for the `@suaveplan/network-plugin-protocol` package. All runtime failures withi… - [batcher](./src/batcher/batcher.md) — _(no submodules)_- [decoder](./src/decoder/decoder.md) — _(no submodules)_ - [decoder](./src/decoder/decoder.md) — _(no submodules)_- [encoder](./src/encoder/encoder.md) — _(no submodules)_ - [encoder](./src/encoder/encoder.md) — _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_ - [pipeline](./src/pipeline/pipeline.md) — _(no submodules)_- [protocol](./src/protocol/protocol.md) — _(no submodules)_ - [protocol-plugin](./src/protocol/protocol-plugin.md) — The main plugin implementation that integrates the protocol layer into a `NetworkNode`. `ProtocolPlugin` implements the… - [protocol](./src/protocol/protocol.md) — _(no submodules)_- [queue](./src/queue/queue.md) — _(no submodules)_ - [queue](./src/queue/queue.md) — _(no submodules)_- [serializer](./src/serializer/serializer.md) — _(no submodules)_ - [serializer](./src/serializer/serializer.md) — _(no submodules)_- [ttl](./src/ttl/ttl.md) — _(no submodules)_ - [ttl](./src/ttl/ttl.md) — _(no submodules)_- [error-codes](./src/error-codes.md) — Defines the stable error-code registry for the `@suaveplan/network-plugin-protocol` package. All runtime failures withi… ## Purpose Implements the compact binary protocol layer for all peer-to-peer messages. This plugin provides the 13-byte binary header, message encoder/decoder, serialization strategy framework, priority message queueing, adaptive batching, TTL/loop detection, and transform pipeline. It plugs into `NetworkNode` via the `NetworkPlugin` interface. ## Features - **13-byte binary header** — version, flags, message type, timestamp, payload length - **MessageEncoder / MessageDecoder** — wire-format serialization - **SerializerFactory** — JSON, binary, and MessagePack strategies with fallback - **PriorityMessageQueue** — 5-tier priority with CRITICAL bypass - **MessageBatcher** — groups messages by type/target, flushes on size/time - **MessageTTL / LoopDetector** — prevents infinite propagation and cycles - **ProtocolPipeline** — ordered transform stages for outgoing and incoming data ## Usage ### Basic Example ```ts import { ProtocolPlugin } from "@suaveplan/network-plugin-protocol"; const plugin = new ProtocolPlugin(); node.use(plugin); ``` ### Advanced Example ```ts import { ProtocolPlugin, PriorityMessageQueue } from "@suaveplan/network-plugin-protocol"; const plugin = new ProtocolPlugin({ queue: { capacity: 2000, policy: "drop-oldest" }, batch: { maxSize: 50, maxWaitMs: 25, priorityTrigger: "HIGH" }, }); node.use(plugin); ``` ## API Reference See per-module documentation in `src/`: - `src/protocol/` — `BinaryProtocol`, `ProtocolPlugin` - `src/encoder/` — `MessageEncoder` - `src/decoder/` — `MessageDecoder` - `src/serializer/` — `SerializerFactory`, `JsonSerializer`, `BinarySerializer`, `MessagePackSerializer` - `src/queue/` — `PriorityMessageQueue` - `src/batcher/` — `MessageBatcher` - `src/ttl/` — `MessageTTL`, `LoopDetector` - `src/pipeline/` — `ProtocolPipeline` ## Implementation Notes The protocol plugin is transport-agnostic. It serializes envelopes to byte arrays but does not send them over the wire. Transports consume the encoded bytes and handle actual delivery. The bitpacker integration uses `@suaveplan/bitpacker` for header field packing. The pipeline integrates with `@suaveplan/streams` transforms for compression and encryption.