Initial Commit

This commit is contained in:
2026-05-27 23:47:53 +01:00
parent fbc70f96e6
commit 9b28db724f
18103 changed files with 1600554 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
# @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.
<!-- begin:auto-docs -->
## Documentation tree
- [batcher](./src/batcher/batcher.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [batcher](./src/batcher/batcher.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [protocol](./src/protocol/protocol.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [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) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [error-codes](./src/error-codes.md) — Defines the stable error-code registry for the `@suaveplan/network-plugin-protocol` package. All runtime failures withi…
<!-- end:auto-docs --> - [batcher](./src/batcher/batcher.md) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [protocol](./src/protocol/protocol.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [protocol](./src/protocol/protocol.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [protocol](./src/protocol/protocol.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_ - [decoder](./src/decoder/decoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_ - [encoder](./src/encoder/encoder.md) — <!-- begin:auto-docs --> _(no submodules)_- [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_ - [pipeline](./src/pipeline/pipeline.md) — <!-- begin:auto-docs --> _(no submodules)_- [protocol](./src/protocol/protocol.md) — <!-- begin:auto-docs --> _(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) — <!-- begin:auto-docs --> _(no submodules)_- [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_ - [queue](./src/queue/queue.md) — <!-- begin:auto-docs --> _(no submodules)_- [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_ - [serializer](./src/serializer/serializer.md) — <!-- begin:auto-docs --> _(no submodules)_- [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(no submodules)_ - [ttl](./src/ttl/ttl.md) — <!-- begin:auto-docs --> _(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.