Files
skills/docs/networking/events/events-transport/README.md
2026-05-29 08:20:56 +01:00

8.5 KiB

@suaveplan/events-transport - Cross-context event bridges for @suaveplan/events: MessageChannel (at-least-once with ack) and BroadcastChannel (at-most-once) transports with nonce dedup, W3C trace context, and AbortSignal support.

Summary

Cross-context event bridges for @suaveplan/events: MessageChannel (at-least-once with ack/retry) and BroadcastChannel (at-most-once, fan-out) transports with nonce deduplication and AbortSignal support.

Documentation tree

- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_- [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_- [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_- [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_ - [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_ - [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_ - [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_ - [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_ - [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_

Packages

Module Description
message-channel-transport Bidirectional at-least-once bridge over MessageChannel
broadcast-channel-transport Fan-out at-most-once bridge over BroadcastChannel
envelope Transport envelope builder and parser
nonce-window Sliding dedup window for nonce tracking
transport-interface Core transport types and interfaces
structured-clone-check Payload cloneability utility

Quick Start

import { createMessageChannelTransport } from "@suaveplan/events-transport";
import { EventBus } from "@suaveplan/events";

const channel = new MessageChannel();
const bus = new EventBus<{ "data.sync": { id: string } }>();
const transport = createMessageChannelTransport({ channel, ackTimeoutMs: 3000 });
const handle = transport.connect(bus);

await bus.emitAsync("data.sync", { id: "x" });
console.log(handle.stats.sent); // 1
handle.disconnect();

License

MIT